Cocos2D — Обнаружение столкновений getTileGIDAt

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

person Joseph Ocasio    schedule 22.12.2015    source источник
comment
Привет, у меня такая же проблема, есть решение?   -  person Anton Shkurenko    schedule 27.11.2016
comment
discuss.cocos2d-x.org/t/   -  person Anton Shkurenko    schedule 27.11.2016


Ответы (1)


Я бы попробовал этот учебник и посмотрел, как ваш код соответствует. Думаю, главное — проверить, правильно ли вы настроили Tiled для разных слоев.

http://www.raywenderlich.com/29458/how-to-make-a-tile-based-game-with-cocos2d-2-x

person virgil debique    schedule 22.12.2015