ページ 1 / 1
複雑な形の当たり判定(2D)
Posted: 2015年10月07日(水) 23:58
by namachan10777
現在海を舞台にしたアクションゲームを制作しようとしていて、下のような複雑な形の島と円形の当たり判定を持つ自機との間で衝突判定を行いたいのですが、皆さんはどのようにしているのか知りたいです。
僕は三角形を組み合わせて島の形を作り、三角形と自機の間で衝突判定を行う方法を思いついたのですが、三角形と円の間の衝突判定は計算コストが高いようなので、どのようにすればいいかと思いました。
よろしくお願いします。

Re: 複雑な形の当たり判定(2D)
Posted: 2015年10月08日(木) 10:16
by usao
こういう方法を用いることが可能な状況なのかどうかわかりませんが…
当たり判定のマスク画像みたいなのを用意するのはどうでしょうか.
例えば,「マップ全域の広さ」が(用途上十分な解像度の)ピクセル換算では W*H だとすれば…
[前処理]
・W*Hのマスク画像を用意する
・マスク画像全体を0で初期化
・島の外周上の全点について,
その点を中心とし,半径が自機の当たり判定円の半径と等しい円
をマスク画像に0ではない値で塗りつぶし描画する
・(必要があるなら島の内部領域も塗りつぶしておく)
[当たり判定の処理]
・自機の(当たり判定円の)中心位置に相当するマスク画像の画素の値を確認する.
値が0であれば,島と当たってない.0でないなら当たっている
…みたいな.

- HitMask.png (7.28 KiB) 閲覧数: 3074 回
Re: 複雑な形の当たり判定(2D)
Posted: 2015年10月08日(木) 23:23
by namachan10777
その方法は思いつきませんでした。
ありがとうございます。