gpt4 book ai didi

c++ - Cocos2D-X - 初始化 CCTMXTiledMap 时出现 EXC_BAD_ACCESS(代码=2,地址=0x0)

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:21 35 4
gpt4 key购买 nike

我尝试在 Cocos2D-X 中使用瓦片 map 创建游戏,但出现以下错误:

EXC_BAD_ACCESS (code=2, address=0x0) 在方法 CCTMXTiledMap::initWithTMXFile(const char *tmxFile) 的 setContentSize(CCSizeZero); 行中)

我正在以这种方式创建瓦片 map :

tileMap->initWithTMXFile("TileMap.tmx");
this->background = tileMap->layerNamed("Background");

有人知道这是怎么回事吗?

请问,你能帮帮我吗?

最佳答案

好的,我找到问题了。只是一点理论:

EXC_BAD_ACCESS code=2 表示指针已损坏,这可能是因为:

  • 指针可能从未被初始化。
  • 指针可能被意外覆盖,因为您越过了数组的边界。
  • 指针可能是被错误转换然后被写入的对象的一部分。
  • 上述任何一项都可能破坏现在指向或靠近该指针的不同指针,使用该指针会破坏该指针(依此类推)。

因此,就我而言,我认为 initWithTMXFile 足以初始化 tileMap 指针,但我错了。解决方法是在initWithTMXFile之前,首先要初始化tileMap。所以,正确的代码块是:

this->tileMap = new CCTMXTiledMap();
this->tileMap->initWithTMXFile("TileMap.tmx");
this->background = tileMap->layerNamed("Background");
this->addChild(tileMap);

希望对你有帮助。

关于c++ - Cocos2D-X - 初始化 CCTMXTiledMap 时出现 EXC_BAD_ACCESS(代码=2,地址=0x0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363513/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com