SPCOLVEC

プチコン3号 プチコンBIG 

スプライトの衝突判定用に移動量を設定

SPCOLVEC spNo[,mx,my]

パラメーター

spNoスプライト番号
mx,my移動量(相対座標)

解説

スプライトが移動する際、移動速度が速すぎて衝突対象をすり抜ける事がないよう、移動間にも衝突判定をつけます。
現在座標から見た相対座標で指定し、現在座標からその位置までの空間全てを衝突範囲として認識させます。

mx,myを省略すると、SPANIMの"XY"で線形補間移動している場合はその値が自動的に入ります。それ以外では(0,0)となります。

スプライト番号はSPSETで設定済みである必要があります。

サンプルコード

表示上は飛び越しているが、SPHITSPで「衝突」と判定させるプログラム。
「SPCOLVEC」がなければ衝突にはならない。
X=0:SPD=50 'SPD:スピード(移動量)
SPSET 0,0:SPCOL 0 'SPCOLで衝突を有効に
SPSET 1,1:SPCOL 1:SPOFS 1,125,0
 
WHILE 1    '永久ループ
SPCOLVEC 0 'SPCOLVECのリセット
B=BUTTON()
'←で移動。移動後の相対位置を[-SPD,0]に設定
IF B AND #LEFT THEN X=X-SPD:SPCOLVEC 0,-SPD,0
'→で移動。移動後の相対位置を[SPD,0]に設定
IF B AND #RIGHT THEN X=X+SPD:SPCOLVEC 0,SPD,0
IF SPHITSP(0,1) THEN BEEP '衝突したら音を鳴らす
SPOFS 0,X,0 'いちご移動
 

参照

SPPAGE スプライトキャラの定義に使用するグラフィックページを指定・取得
SPCLIP スプライトキャラを表示する範囲を指定
SPDEF スプライトキャラの定義データを変更・取得
SPSET スプライト番号にキャラクターをセット
SPCLR スプライト番号のキャラ設定をクリア
SPSHOW スプライトを表示状態にする
SPHIDE スプライトを非表示状態にする
SPHOME スプライトキャラの原点座標を変更・取得
SPOFS スプライトキャラの表示座標を変更・取得
SPROT スプライトキャラの回転角度を変更・取得
SPSCALE スプライトキャラの表示倍率を変更・取得
SPCOLOR スプライトキャラの色合いを変更・取得
SPCHR スプライトキャラのキャラ種類を変更・取得
SPLINK スプライトの同士をリンク・取得
SPUNLINK スプライトの同士のリンクを解除
SPANIM スプライトにアニメーションを設定
SPSTOP スプライトのアニメーションを一時停止
SPSTART スプライトのアニメーションを再開
SPCHK スプライトのアニメーション状況を取得
SPVAR スプライト用内部変数の値を設定・取得
SPCOL スプライトの衝突判定のルールを設定・取得
SPCOLVEC スプライトの衝突判定用に移動量を設定
SPHITSP スプライト同士の衝突判定
SPHITRC スプライトと指定領域との衝突判定
SPHITINFO スプライトの最後の衝突結果を取得
SPUSED スプライト番号が使用されているかチェック
SPFUNC スプライト番号にコールバック処理を割り当て

Facebookコメント