• ベストアンサー

Javaで避けるゲームを作っているんですが…。

Javaで避けるゲームを作っているんですが 衝突処理がよくわからず困ってます。 ボールが三角形に衝突するとスコアが1000減るというふうにしたいのですが どうすればいいでしょうか。 ネットで調べたんですがやっぱりintersects()っていうのを使ってやるんですかね?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

単純なやり方なら、 双方の中心点から、BOX判定でいけますが。 (x,y)-(x2,y2)に三角が入っているか? もう少し綺麗にやるのであれば、 ボールコリジョンかな。 実際は、難しいのはその後です。 ぶつかった後、ぶつかる前の位置に戻さないと、 「ぶつかり続けた」計算になるので、どんどん”スコアが1000減る” が呼び出され続けるという問題が次に出ますよ。 B(x,y)をボールの位置 T(x,y)を三角の位置だとすると、 var x=bx-tx; var y=by-ty; var r=(x*x)+(y*y); if (r<半径*半径) { // 衝突 } 一応これだけで、丸いあたり判定が出来ます。

すると、全ての回答が全文表示されます。

関連するQ&A