Я застрял на этом вопросе в течение нескольких дней. Я надеюсь, что вы, ребята, можете мне помочь. Я создаю простую игру, следуя этому руководству: 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, скорее всего, я обнаружил, что это проблема, связанная с тайлами (может быть, тайлов там нет и т. д.), но проблема в том, что тайлы в полном порядке. Все работает и загружается гладко, за этим исключением.
Спасибо!
вот код:
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);
}