SPCOL

スプライト衝突判定情報を設定する。

  • SPHIT系の命令を使う前に必ず呼ぶこと。
  • SPSET前に使うとエラー。
  • 判定領域を省略すると、スプライトの大きさが判定領域となる。
  • 判定領域を指定した場合、SPHOMEの座標(スプライトの基準位置)によるスプライトの表示位置のずれを無視する。そのため、きちんと合わせたい場合は、判定領域の始点座標から、SPHOMEの座標を引いておくと良い。

書式

SPCOL スプライト番号 [ ,始点X,始点Y,,高さ ] [ , { スケール対応 | [スケール対応 ] ,マスク  } ]

引き数

スプライト番号

対象のスプライト番号:0~4095

始点X,Y

判定領域の始点座標:X,Y(-32768~32767)。

  • スプライトの左上を原点(0,0)として表示された場合の相対座標。よってSPHOME等でスプライトの表示位置がずれる場合は、あらかじめその座標分をずらしておく必要がある。

幅,高さ

判定領域の幅と高さ:W,H(1~65535)

スケール対応

1を指定するとSPSCALEやSPANIMでのスケール変更に合わせて衝突判定の大きさが変化する
0を指定するとスケール変更しても衝突判定の大きさは変化しない

  • 省略時は0。

マスク

0~&HFFFFFFFF(32ビット)

  • 衝突判定時に互いのビットのANDをとり0であれば衝突していないとみなす。
  • 省略時は&HFFFFFFFF。

戻り値

なし

サンプル・参考動画

'スプライトの基準座標を合わせる例
SPDEF 0, 0, 0, 32, 32, 16, 31
SPSET 0,0
SPCOL 0, 13-16, 0-31, 6, 32

コメント

タイトルとURLをコピーしました