私が開発している単純なゲームでエッジ衝突の問題があります。それは、画面全体にコインを投げることについてです。以下のコードを使用してエッジの衝突を検出し、コインを画面の端から跳ね返らせることができます。
1つのケースを除いて、すべてが私が望むように機能します。コインが左端に当たって右端に移動すると、システムは衝突を検出しません。残りのケースは、最初に右端を叩いてから左端を叩くなど、完全に機能しています。
誰かがそれに対する解決策を提案できますか?
public void onMove(float dx, float dy) {
coinX += dx;
coinY += dy;
if (coinX > rightBorder) {
coinX = ((rightBorder - coinX) / 3) + rightBorder;
}
if (coinX < leftBorder) {
coinX = -(1 * coinX) / 3;
}
if (coinY > bottomBorder) {
coinY = ((bottomBorder - coinY) / 3) + bottomBorder;
}
invalidate();
}