投稿者 うたひこ  (社会人) 投稿日時 2008/11/19 08:46:45
こんにちは。



僕が以前シューティング的アクション風ゲーム系アプリを作った時の工夫を書いてみます。



当たり判定をすべきオブジェクトに、敵弾、敵キャラ、味方弾、味方キャラがあり、当たり判定しないけど動きを持つオブジェクトとしてエフェクトがありました。

これらのオブジェクトは全て単一のクラスからインスタンス化したもので、かつそれらには、自身が敵か味方か、弾かキャラかを区別するプロパティを持たせませんでした。



では、どこでそれを判断したかというと、それらの管理、当たり判定、およびゲーム進行を統括する「フェイズ」クラスに、敵キャラ、味方キャラ、敵弾、味方弾、エフェクト、それぞれの属すべきコレクションを用意し、それで判断を行いました。

フェイズクラスは、コレクション対コレクションで当たり判定を行えばよく、わかりやすくて効率的です。



つまり、
「個体には、生まれ持っての正義か悪かの区別などなく、どこに属すかが、その者の善悪を定めた」
ということです。