プロが教えるわが家の防犯対策術!

Javaで避けるゲームを作っているんですが
衝突処理がよくわからず困ってます。

ボールが三角形に衝突するとスコアが1000減るというふうにしたいのですが
どうすればいいでしょうか。

ネットで調べたんですがやっぱりintersects()っていうのを使ってやるんですかね?

A 回答 (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<半径*半径) {
// 衝突
}
一応これだけで、丸いあたり判定が出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!