我在从字符串输入创建 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)); 它突然损坏(大部分时间)