SPANIM

プチコン3号 プチコンBIG 

スプライトにアニメーションを設定

直接指定する SPANIM spNo,mode,time1,p1a[,p1b][,time2,p2a[,p2b]][,loop] 数値配列で指定する SPANIM spNo,mode,arrdata[,loop] DATAで指定する SPANIM spNo,mode,@label[,loop]

パラメーター

spNoスプライト番号
mode動作モード(アルファベットまたは0-15の数値)
time表示時間(フレーム数。マイナスは線形補間)
pパラメーター値(modeによって意味が異なる)
arrdata数理配列の設定データ
label読み込むDATAがあるLABEL
loopループ回数(0:無限,省略時:1)

解説

スプライトキャラにアニメーションを設定します。
modeで、動作モード(移動、回転など)、
timeで、表示時間(フレーム数(1/60秒))※マイナスの場合は線形補間(そのフレーム数の時間をかけて変化)
p1a,p1bで、動作モードに合った値を渡します。
一回の命令で、time1,p1a[,p1b]」 の1セットを、最大32セットまで同時に行え、左から順に実行します。
loopで、ループ回数を指定します。0は無限ループ。省略時は1。

また、複数のSPANIM命令を書くことで、1つのスプライトに複数種類の設定をする事もできます。
例 : "R"で回転しながら"XY"で移動など。

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

modeで設定する項目
mode動作内容パラメータ1(p1a)パラメータ2(p1b)
0"XY"上下左右移動X座標Y座標
1"Z"奥行き移動Z座標
2"UV"定義画像定義X座標定義Y座標
3"I"定義番号定義番号
4"R"回転角度(-で左)
5"S"拡大/縮小倍率X倍率Y
6"C"色コード
7"V"変数SP変数[7]の値
  • "XY+"のように「+」を付けるか、modeの数字に「+8」で記述すると、パラーメーターの値は現在値からの相対座標となる
  • "R"(回転)は「度」単位で、指定角度が1以上なら右回り、マイナスなら左回りに回転。
  • "S"(倍率)は、2なら2倍(200%)、0.5なら半分(50%)
  • "C"(色)の色コードは、RGBか、&HAARRGGBBで指定
数値配列で指定する
数値配列で指定する場合、timeN,pNa[,pNb]を1セットとするデータを羅列した配列を準備して読み込みます。(サンプルコード参照)
DATAで指定する
DATAで指定する場合も配列と同じく、timeN,pNa[,pNb]を1セットとするデータを羅列したDATAを準備して読み込みます。
ただしDATAで指定する場合は、先頭のデータは、セット数を表す数値でなければなりません。(サンプルコード参照)

サンプルコード

"XY"で移動(10秒かけて現在位置から座標(100,100)へ移動)
SPSET 0,0
SPANIM 0,"XY",-600,100,100
"XY+"で移動(10秒かけて現在位置から右へ100,下へ100移動)
SPSET 0,0
SPANIM 0,"XY+",-600,100,100
現在位置から左右に動き続ける
SPSET 0,0
SPANIM 0,"XY+" ,-30,100,0 ,-30,0,0,0
定義画像の一段目を順番にスクロール表示
SPSET 0,0
SPANIM 0,"UV",-600,495,0,1
アニメーション(歩くネコ。4コマをそれぞれ20フレーム(0.33秒)ずつ)
F=20:A=856:SPSET 0,A
SPANIM 0,"I",F,A ,F,A+1 ,F,A+2, F,A+3 ,0
F=20:SPSET 0,856
SPANIM 0,"I+",F,0 ,F,1 ,F,2, F,3 ,0
回転する戦闘機(120フレーム(2秒)で右に一回転(360が-360なら左回転))
SPSET 0,3323
SPANIM 0,"R",-120,360,0
大きくなるボール
SPSET 0,2385
SPANIM 0,"S",-300,8,8,1
色が茶色くなってゆくバナナ
SPSET 0,5
SPANIM 0,"C",-300,RGB(127,0,0),1
変数(SPVARの7)に8を300フレーム(約5秒間)代入し、その後0に戻す
timeにマイナス指定時は、そのフレーム数をかけて現在値から指定値まで線形補間(等間隔)で変化。
SPSET 0,5
SPANIM 0,"V" ,300,8 ,1,0 ,0
数値配列から設定を読み込み(前述の「現在位置から左右に動き続ける)
DIM D[6]
D[0]=-30:D[1]=100:D[2]=0:D[3]=-30:D[4]=0:D[5]=0
SPANIM 0,"XY+",D,0
DATAから読み込み(前述の「現在位置から左右に動き続ける)
SPANIM 0,"XY+",@DAT,0
@DAT
DATA 2  '最初は必ずセット数を渡す
DATA -30,100,0
DATA -30,0,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コメント