c++ - Cocos2d:错误没有合适的从 Cocos2d::Valuemap 到 Cocos2d::CCdictionary 的转换函数存在

标签 c++ cocos2d-x cocos2d-x-3.0

我正在学习这个关于在我的游戏中实现 tilemaps 的精彩教程 http://www.raywenderlich.com/39113/cocos2d-x-tile-map-tutorial-part-1

http://www.raywenderlich.com/40544/cocos2d-x-tile-map-tutorial-part-2

但是当我谈到这里时:

CCTMXObjectGroup *objectGroup = _tileMap->objectGroupNamed("Objects");

if(objectGroup == NULL){
    CCLog("tile map has no objects object layer");
    return false;
}

CCDictionary *spawnPoint = objectGroup->objectNamed("SpawnPoint");

int x = ((CCString)*spawnPoint->valueForKey("x")).intValue();
int y = ((CCString)*spawnPoint->valueForKey("y")).intValue();

_player = new CCSprite();
_player->initWithFile("Player.png");
_player->setPosition(ccp(x,y));

this->addChild(_player);
this->setViewPointCenter(_player->getPosition());

我收到一个错误:CCDictionary *spawnPoint = objectGroup->objectNamed("SpawnPoint");

说明没有转换这个objectGroup的函数。 (错误没有合适的从 Cocos2d::Valuemap 到 Cocos2d::CCdictionary 的转换函数存在)

这看起来像是使用的不同 cocos 版本的问题(教程是 v2,我是 v3)。

有人知道如何解决这个问题吗?

最佳答案

为什么不使用自动指针,并访问使用普通 C++ 语法返回的无序映射。请参阅下面的代码示例。

auto spawnPoints = objectGroupd->objectNamed("SpawnPoint");
int x = spawnPoints.at("x").asInt();
int y = spawnPoints.at("y").asInt();

这将为您提供 raywenderlich 教程期望您拥有的相同值。

关于c++ - Cocos2d:错误没有合适的从 Cocos2d::Valuemap 到 Cocos2d::CCdictionary 的转换函数存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981246/

相关文章:

Android 应用黑屏

c++ - 从触摸回调访问 vector 元素的方法时出现 BAD ACCESS 错误

ios - cocos2dx - 关闭 TextFieldTTF 上的预测文本

c++ - NSImage 和 NSBitmapImageRep 内存泄漏

c++ - 在重载 vector 求和中移动分配

python - 通过嵌入式 Python 调用 C++ 代码

c++ - 如何同时旋转和平移我的 Sprite ? cocos2dx 3.2

c++ - Python 3.6 pyrfc 导入错误

ios - 使用 LUA 的 Cocos2dx iOS 项目

c++ - Cocos2d-x 3.2 EventListener 在子 Sprite 中不起作用