Для моей игры на основе плиток мне нужно вычислить направление на основе заданного смещения точки (разница между двумя точками). Например, скажем, я стою в точке (10, 4) и хочу переместиться в точку (8, 6). Направление, в котором я двигаюсь, - это северо-запад. лучший способ рассчитать это?
Вот базовая реализация на Java.
public int direction(int x, int y) {
if (x > 0) {
if (y > 0) {
return 0; // NE
} else if (y < 0) {
return 1; // SE
} else {
return 2; // E
}
} else if (x < 0) {
if (y > 0) {
return 3; // NW
} else if (y < 0) {
return 4; // SW
} else {
return 5; // W
}
} else {
if (y > 0) {
return 6; // N
} else if (y < 0) {
return 7; // S
} else {
return -1;
}
}
}
Конечно, ее можно оптимизировать или сократить. Любая помощь? Спасибо.