SPDEF

プチコン3号 プチコンBIG 

スプライトキャラの定義データを変更・取得

定義を全て初期化する SPDEF 1つ定義する SPDEF defNo,u,v[,w,h[,hx,hy]][,attr] 数値配列から一括で定義する SPDEF arrdat[,defNoOfs[,Uofs,Vofs]] DATAから一括で定義する SPDEF @label[,defNoOfs[,Uofs,Vofs]] 定義済み情報を取得する SPDEF defNo OUT u,v[,w,h[,hx,hy]][,attr] 別の定義をコピーする SPDEF defNo,defno2,[u],[v],[w],[h],[hx],[hy],[attr]

パラメーター

defNo定義番号(0~4095)
defNo2コピー元定義番号(0~4095)
u,vグラフィックページ上のキャラの左上座標
w,hキャラの幅と高さ(省略時:16)
hx,hyキャラの原点(表示や回転の軸)座標。(左上からの相対座標)(省略時:0)
attrアトリビュート。回転と左右反転を表す数値(省略時:1)
arrdat定義情報が入った数値配列(1定義=7要素)
label定義情報が書かれたDATAへのラベル
defNoOfsdefNoのオフセット値
Uofs,Vofs座標のオフセット値

解説

スプライトキャラを定義しているデータの変更や取得を行います。
定義データ一個分のデータは、開始座標X,Y,幅,高さ,原点X,原点Y,アトリビュートの7つです。

アトリビュートの値
省略時:1(そのまま表示)
数値で指定する場合(プログラムは短くなるが、後で分かりにくい)
反転\回転(右)なし90度180度270度
なし0246
反転左右8101214
反転上下16182022
反転上下/左右24262830
※上記の値を「+1」しないと表示されません。忘れずに!
定数リテラルで指定する場合(プログラムは長くなるが、後でメンテしやすい)
定数値(参考)
表示#SPSHOW1
回転なし#SPROT00
回転90度#SPROT902
回転180度#SPROT1804
回転270度#SPROT2706
反転左右#SPREVH8
反転上下#SPREVV16
加算合成#SPADD32
これらのORを取ります。(サンプル参照)
「#SPSHOW」がないと表示されません。忘れずに!
※加算合成(#SPADD)を設定すると、加算で描画されます。
1つ定義する
指定した定義番号の内容を、スプライト定義のグラフィック(初期値はGRP4。SPPAGEで変更可能)の内容を元に定義します。
指定したいキャラの左上の座標X,Y、幅と高さ、原点(表示や回転などに使用)、アトリビュートを設定します。
数値配列から一括で定義する
定義データの入った数値配列(1定義が7要素)から一括で定義します。
DATAから一括で定義する
DATAに記述されたデータ(1定義が7要素)から一括で定義します。
ただし、データの一番先頭には取り込む[定義数]を指定します。
合計で「1+(定義データ数×7)」のデータ数が必要です。
定義済み情報を取得する
定義されている情報を、数値型変数から取得します。
別の定義をコピーする
別の定義内容をコピーします。各値を指定すれば、その値だけコピーされず指定した値がセットされます。

v3.3より、SPキャラ番号および、定義座標U,Vのオフセット値が指定できるようになりました。
指定した値にofsの値が加算されて出力されます。


サンプルコード

1つを定義(定義0を、90度回転したさくらんぼにする。)どちらも同じ
SPDEF 0,32,0,16,16,8,8,3
SPDEF 0,32,0,16,16,8,8,#SPSHOW OR #SPROT90
 
数値配列から定義0にセット。データ数を増やせば定義1,2,3…と一括定義可
DIM D[7]
D[0]=32:D[1]=0:D[2]=16:D[3]=16:D[4]=8:D[5]=8:D[6]=3
DATAから定義0,1にセット。データ数を増やせば定義2,3…と一括定義可
SPDEF @DAT
@DAT
DATA 2  '最初は必ず定義数をセットする
DATA 32,0,16,16,8,8,3
DATA 32,0,16,16,8,8,4
 
別の定義からコピーする。定義1に定義0を90度回転したものを定義
SPDEF 1,0,,,,,,,3

参照

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コメント