私のタイルベースのゲームでは、指定されたポイント オフセット (2 つのポイント間の差) に基づいて方向を計算する必要があります。たとえば、ポイント (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;
}
}
}
確かに最適化または短縮できます。何か助けはありますか?ありがとう。