アクターの当たり判定を行う場合、前準備として当たり判定を画像に設定する必要があります。
- addGraphicHit(グラフィックハンドル, テクスチャのX座標, テクスチャのY座標, 当たり判定の幅, 当たり判定の高さ)
この関数で、グラフィックの特定位置に当たり判定に使用する矩形を追加します。当たり判定矩形は最大16個まで設定できます。
当たり判定は「矩形同士が重なっているか?」で判定しています。
重なっているかどうかを取得するには以下の関数を使用します。
- isHitActor([アクターハンドル],アクターハンドル)
- getHitLayer([アクターハンドル],レイヤー番号)
isHitActorは指定されたアクター同士が重なっているかどうかをboolean値として返します。
getHitLayerは指定されたアクターに対して「指定レイヤー上で重なっているアクターのハンドル」をLuaのテーブルとして取得します。
複数のアクターを相手に判定を取る場合、isHitActorで1対1の判定を複数取るよりは、getHitLayerでまとめて判定を取った方が高速になります。レイヤーを使ってアクターをうまく分けておくのがコツです。(STGなら自機と敵の弾は別のレイヤーに置くとか)
7月 27th, 2010 |