PosLoadUtil.cpp
Vector<PosBase*> PosLoadUtil::loadPosData(const charsPath,EdictMode editMode,Nodecontainer){
Vector<PosBase*> poses;
ValueMap datas = FileUtils::getInstance()->getValueMapFromFile(sPath);
int size = datas.size();
ValueMap data;
for (int i = 0; i < size;i++){
data = datas.asValueMap();
switch (editMode){
case monsterMode:
{
PosBase* monsterPos = MonsterPos::create(Point(data"x"].asInt(), data"y"].asInt()), true);
poses.pushBack(monsterPos);
if (container){
container->addChild(monsterPos);
}
break;
}
case towerMode:
{
PosBase* towerPos = TowerPos::create(Point(data"x"].asInt(), data"y"].asInt()), true);
poses.pushBack(towerPos);
if (container){
container->addChild(towerPos);
}
break;
}
}
}
return poses;
}
PosEditLayer.cpp
void PosEditorLayer::loadConfig(){
Size visibleSize = Director::getInstance()->getVisibleSize();
//加载地图场景
Sprite* bgSprite = Sprite::create(StringUtils::format("images/bglevel/%dbglevel.png",m_curLevel));
bgSprite->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
this->addChild(bgSprite);
//加载关卡的坐标
std::string sPath = StringUtils::format("posData/monsterPosData_%d.plist", m_curLevel);
auto poses = PosLoadUtil::getInstance()->loadPosData(sPath.c_str(), monsterMode,this);
m_monsterPoses.pushBack(poses);
sPath = StringUtils::format("posData/towerPosData_%d.plist", m_curLevel);
poses = PosLoadUtil::getInstance()->loadPosData(sPath.c_str(), towerMode,this);
m_towerPoses.pushBack(poses);
}
调试的时候就是从上面的代码出现了问题,虽然生成成功,但是运行不了。 。。 弹出一个对话框