我几天来一直坚持这个问题。我希望你们能帮助我。我正在按照本教程创建一个简单的游戏:http://discuss.cocos2d-x.org/t/tutorial-series-use-the-cocos2d-x-3-0-game-engine-write-a-tile-map-game-part02/12991
我被困在碰撞检测部分。方法getTileGIDAt()总是返回0,很可能我发现这是一个Tiled相关的问题(也许瓷砖不在那里等),但问题是瓷砖完全没问题。除了这个例外,所有东西都能顺利运行和加载。
谢谢!
这是代码:
void HelloWorld::setPlayerPosition(Point position)
{
Point tileCoord = this->tileCoordForPosition(position);
int tileGid = _blockage->getTileGIDAt(tileCoord);
if (tileGid) {
auto properties = _tileMap->getPropertiesForGID(tileGid).asValueMap();
if (!properties.empty()) {
auto collision = properties["Blockage"].asString();
if ("True" == collision) {
return;
}
}
}
_player->setPosition(position);
}
答案 0 :(得分:0)
我会尝试本教程,看看您的代码是如何匹配的。我想主要的是检查你是否正确设置了不同层的Tiled设置。
http://www.raywenderlich.com/29458/how-to-make-a-tile-based-game-with-cocos2d-2-x