40 SPRITE衝突判定命令
SPRITE衝突判定命令
SPRITEの当たり判定に関する以下の命令があります。
SPCOL、SPCOLVEC、SPHIT()、SPHITSP()、SPSPHITRC()
40 SPRITE衝突判定命令
SPCOL
SPRITE衝突判定用の矩形の定義
この命令を実行しない状態では、オフセットは0,0、サイズはSPSETで指定されたサイズとなります。
書式 | SPCOL 管理番号, x ,y, 横幅, 縦幅, スケール対応 [ ,グループ ] | |
---|---|---|
引数 | 管理番号 | 0〜99 |
x | ±64 | |
y | ±64 | |
横幅 | 1〜64 | |
縦幅 | 1〜64 | |
スケール対応 | FALSE=無視 TRUE=同期 | |
グループ | 0〜255(ビット単位でグループ設定 | |
戻り | なし | |
エラー |
グループには、ビット単位で好みの情報を割り当てることができます。例えば下位4ビットでプレイヤー側の情報、上位4ビットで敵側の情報に分けて、プレイヤーと敵との衝突判定では、グループに&HF0を入れます。
b00 | プレイヤー |
---|---|
b01 | プレイヤーの弾 |
b02 | エフェクト |
b03 | アイテム |
b04 | 敵 |
b05 | 敵の弾 |
b06 | ボス |
b07 | 背景の障害物 |
40 SPRITE衝突判定命令
SPCOLVEC
SPRITE衝突判定用の移動速度の定義
強制的に移動量を指定する場合に利用します。解除する場合は、移動量を省略して実行してください。
なお、この命令を実行していない状態では、SPOFSで指定された時間と目的地から求めた値で自動的に計算されます。SPOFSを移動時間指定無しで実行した場合は、移動量は0となります。
書式 | SPCOLVEC 管理番号 [ ,移動量x ,移動量y ] | |
---|---|---|
引数 | 管理番号 | 0〜99 |
移動量x | ±16.0 | |
移動量y | ±16.0 | |
戻り | なし | |
エラー |
40 SPRITE衝突判定命令
SPHIT()
SPRITEの衝突判定
同じグループ同士での衝突判定を行います。
衝突時、システム変数に相手の情報を残します。
書式 | SPHIT( 管理番号 [ ,開始管理番号 ] ) | |
---|---|---|
引数 | 管理番号 | 0〜99 |
開始管理番号 | 0〜99(省略時自分以外すべて) | |
戻り | 結果 | TRUE=衝突発生 |
エラー |
40 SPRITE衝突判定命令
SPHITSP()
SPRITE同士の衝突判定
指定した相手との衝突判定を行います。
衝突時、システム変数に相手の情報を残します。
書式 | SPHITSP( 管理番号, 相手管理番号 ) | |
---|---|---|
引数 | 管理番号 | 0〜99 |
相手管理番号 | 0〜99 | |
戻り | 結果 | TRUE=衝突発生 |
エラー |
40 SPRITE衝突判定命令
SPHITRC()
SPRITEと矩形の衝突判定
指定した矩形サイズとの衝突判定を行います。
衝突時、システム変数に相手の情報を残します。
書式 | SPHITRC( 管理番号, 始点x, 始点y, 横幅, 縦幅 [ ,移動量x, 移動量y ] ) | |
---|---|---|
引数 | 管理番号 | 0〜99 |
始点x | ±1024 | |
始点y | ±1024 | |
横幅 | 1〜 | |
縦幅 | 1〜 | |
移動量x | ±16.0 | |
移動量y | ±16.0 | |
戻り | 結果 | TRUE=衝突発生 |
エラー |