Cocos2d: 错误不存在从 Cocos2d::Valuemap 到 Cocos2d::CCdictionary 的合适的转换函数
Cocos2d: error no suitable conversion function from Cocos2d::Valuemap to Cocos2d::CCdictionary existis
我正在学习这个关于在我的游戏中实现 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)。
有谁知道如何解决这个问题?
CCDictionary 现在是 ValueMap。所以只需将其更改为ValueMap。然后就可以这样使用了:
int x = spawnPoint["x"].asInt();
int y = spawnPoint["y"].asInt();
更容易做到。
为什么不使用自动指针,并访问使用普通 C++ 语法返回的无序映射。请参阅下面的代码示例。
auto spawnPoints = objectGroupd->objectNamed("SpawnPoint");
int x = spawnPoints.at("x").asInt();
int y = spawnPoints.at("y").asInt();
这将为您提供 raywenderlich 教程期望您拥有的相同值。
我正在学习这个关于在我的游戏中实现 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)。
有谁知道如何解决这个问题?
CCDictionary 现在是 ValueMap。所以只需将其更改为ValueMap。然后就可以这样使用了:
int x = spawnPoint["x"].asInt();
int y = spawnPoint["y"].asInt();
更容易做到。
为什么不使用自动指针,并访问使用普通 C++ 语法返回的无序映射。请参阅下面的代码示例。
auto spawnPoints = objectGroupd->objectNamed("SpawnPoint");
int x = spawnPoints.at("x").asInt();
int y = spawnPoints.at("y").asInt();
这将为您提供 raywenderlich 教程期望您拥有的相同值。