Я решил сделать изометрическую игру с использованием C++ и cocos2d-x. Каждая изометрическая плитка имеет координату X и Y, при этом 1 на плиту перемещается. Вот как я конвертирую плитку в координаты экрана.Преобразование изометрических координат
cocos2d::CCPoint WorldPos::convertToScreen(){
cocos2d::CCPoint posScreen;;
posScreen.x=(this->x)*(TILE_WIDTH/2) + (this->y)*-TILE_HEIGHT;
posScreen.y=(this->x)*(TILE_HEIGHT/2) + (this->y)*(TILE_HEIGHT/2);
return posScreen;
}
Плитки все 40px wide и 20px tall.
Теперь мне нужна функция для преобразования этих координат мира (изометрических координат) обратно в координаты экрана. что-то вроде
WorldPos* WorldPos::convertToWorld(cocos2d::CCPoint &point)
Я не могу показаться, чтобы выяснить это, я делаю это все неправильно, и я должен сделать позиционирование является способом или ти различным есть какое-то расчет, что я не могу понять?
Просто сделайте расчет обратного. Вы попробовали это? – Mat
Я пробовал, но я не мог заставить это работать правильно, как бы я инвертировал вычислить что-то вроде этого? – Kurt