我在从字符串输入创建 tmx 映射时遇到问题。
bool LevelManager::initLevel(int currentLevel)
{
const char* 映射;
尝试 {
地图 = LevelManager::getLevel(currentLevel);
} 捕捉(整数){
投掷1;
}
如果(地图!= NULL){
CCLog("%s", 地图);
tileMap = CCTMXTiledMap::create(map);
tileMap->setAnchorPoint(ccp(0,0));
tileMap->setPosition(ccp(15,20));
this->addChild(tileMap, 5);
backgoundLayer = tileMap->layerNamed("Background");
} 别的 {
投掷1;
}
返回真;
}
那是我的代码。它非常不稳定。大多数时候它会崩溃,有时它不会。我正在从字符串地图加载我的地图。Wich 是一个 const *char。我的地图被命名为 Level1.tmx,当我像这样加载地图时: tileMap = CCTMXTiledMap::create("Level1.tmx"); 它总是有效,从不崩溃。而且我知道 map 的值是 Level1.tmx 因为我在加载之前将它记录在行中。
当它崩溃时,日志输出如下: (lldb) 和 tileMap->setAnchorPoint(ccp(0,0)); 它说“线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x0)
有谁知道为什么会发生这种情况以及如何解决它?
非常感谢。
ps:我用的是xcode,最新的cocos2d-x版本和iPhone模拟器
编辑:
使用断点,我检查了加载 tilemap 时出现问题的地方。
就行 tileMap = CCTMXTiledMap::create(map); 我的变量映射仍然很好
但在线 tileMap->setAnchorPoint(ccp(0,0)); 它突然损坏(大部分时间)