Cocos2dx 3.17 TileMap Basic Sample - неправильная позиция тайлкорда, позиция itmes слоя объекта также возвращена неверно - PullRequest
0 голосов
/ 25 августа 2018

Я попробовал пример Cocos2d TileMap из здесь , в этом тайлкорде, возвращаемом для данного игрока, позиция неверна.

Вот код

Point HelloWorld::tileCoordForPosition(Point position)
{
    int x = position.x / mTileMap->getTileSize().width;
    int y = ((mTileMap->getMapSize().height * mTileMap->getTileSize().height) - position.y) / mTileMap->getTileSize().height;
    return Point(x, y);
}

Вот скриншот карты enter image description here

Также неверно возвращено tileCord. Так что столкновение не работает. Я использовал его из образца на сайте Рэй Вендерлих

Вот полный пример кода https://app.box.com/s/whunv70tstwxbgzxdvxfeu080y6gwucb

Если у кого-то есть время, проверьте его и, пожалуйста, помогите мне найти ошибку.

1 Ответ

0 голосов
/ 07 сентября 2018

В cocos2dx 3.17 возвращаемые точки появления равны половине, тот же tileMap возвращает правильное значение в проекте Cocos2d-ObjC.Поэтому временное исправление заключается в умножении входного значения внутри tileCoordForPosition на 2. Это временное решение ... все еще ожидает правильного исправления.

Point HelloWorld::tileCoordForPosition(Point position)
{
    Point newPos = Vec2(position.x*2, position.y*2);

    int x = newPos.x / mTileMap->getTileSize().width;
    int y = ((mTileMap->getMapSize().height * mTileMap->getTileSize().height) - newPos.y) / mTileMap->getTileSize().height;
    return Point(x, y);
}

Вот полный рабочий пример TileMap: https://app.box.com/s/r3kglzbx6naig896bq4my7opfeg6ftwz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...