cocos2d-x:当たり判定のすり抜け対応

処理に余裕がありそうなので

弾幕の器2は先週までの更新でも、iPhone3GS(iOS6)相当の環境でも処理落ちが発生していません。なので当初は対応予定ではなかった「対惑星レーザーのすりぬけ対応」をしたいとおもいます。この処理は当たり判定を正確に行えるのですが、負荷が高いため避けていました。
 

すり抜ける原因は

言葉だけでは説明しにくいので図にしました。以下の通りです。
crossing1
crossing2

動画で確認


〜1:00@レーザーをすり抜ける
〜2:17@すり抜け対策をしたが爆発位置がずれる
〜最後@交点を求めて、そこで爆発するようにした
 

弾と弾のすりぬけは大変

弾の場合は移動するので対惑星レーザーと同じようには処理できない。が60fps(1/60秒)の世界では同じように扱っても問題ないようにも感じる。いずれにしろ弾幕の器では弾に対するすり抜け対応はしない予定です。
crossing3
crossing4
 

参考リンク

このような処理は方程式を解くよりもベクトル的に処理した方が軽い。なのでgoogleで「内積 外積 交差」と検索すると資料がたくさん出てくる。
→参考:google検索「内積 外積 交差
→参考:交差判定について
 
今回は爆発位置を求めるために「交点」を求める必要がありました。
→参考:交点座標

ついでにjavaScriptのサンプル。
→参考:線分交差判定
 
Unityは有料のゲームエンジンということもあり、このようなすり抜けに対する処理も持っています(でも弾幕ゲームのように処理の軽さを必要とするものにはcocos2d-xの方が適しているように思います)。
→参考:google検索「unity 当たり判定 すり抜け
 
 

3 Responses to cocos2d-x:当たり判定のすり抜け対応

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


九 + = 10


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>