0
1つのスクエアが画面の周りを跳ね返り、1つが現場にとどまる(おそらく回転する)シーンを作成したいとします。この場合、衝突検出は簡単ですが、私は四角形を完全に別々に(2つの異なるクラスで)初期化する必要がありますか、または描画メソッドで振る舞いを割り当てる必要がありますか?衝突する必要のある2つのオブジェクトを描画し、異なる動作を持たせる
は両方まああなたに
1つのスクエアが画面の周りを跳ね返り、1つが現場にとどまる(おそらく回転する)シーンを作成したいとします。この場合、衝突検出は簡単ですが、私は四角形を完全に別々に(2つの異なるクラスで)初期化する必要がありますか、または描画メソッドで振る舞いを割り当てる必要がありますか?衝突する必要のある2つのオブジェクトを描画し、異なる動作を持たせる
は両方まああなたに
ありがとう正方形は同じですので、そこの正方形を作るスクエアクラスでなければなりませんし、それは衝突判定のクラスを作成するのが最善かもしれません。このクラスは、互いに重なり合った(衝突した)四角形のテストに使用でき、真または偽のいずれかを返します。
public static boolean SquareCollision(Rectangle r1, Rectangle r2) {
if(r1.lowerLeft.x < r2.lowerLeft.x + r2.width &&
r1.lowerLeft.x + r1.width > r2.lowerLeft.x &&
r1.lowerLeft.y < r2.lowerLeft.y + r2.height &&
r1.lowerLeft.y + r1.height > r2.lowerLeft.y)
return true;
else
return false;
}
こんにちは私が被験者にいる間、私はあなたが私に与えたこの例を試しています。私は別の名前(正方形とstatsquare)で同じクラスから2つの正方形を描こうとすると、なぜアプリケーションがNullPointerExceptionでクラッシュするのですか?あなたは同じクラスの四角形を違った形で描くことを意図していますか? – Jack
あなたはメモリ内の四角形を作成することはありません。四角形を作成する必要があります。square = new Square();と正方形statsquare = new Square(); – Chris
あなたはいつもあなたの数学では、左下隅を使用するように頼むことができますか?左上および右下の電気ショック療法ではない。 – Jack