我正在学习这个关于在我的游戏中实现 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/