SPDEF
スプライトキャラの定義データを変更・取得
定義を全て初期化する
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へのラベル
defNoOfs:defNoのオフセット値
Uofs,Vofs:座標のオフセット値
解説
スプライトキャラを定義しているデータの変更や取得を行います。
定義データ一個分のデータは、開始座標X,Y,幅,高さ,原点X,原点Y,アトリビュートの7つです。
※上記の値を「+1」しないと表示されません。忘れずに!
これらのORを取ります。(サンプル参照)
※「#SPSHOW」がないと表示されません。忘れずに!
※加算合成(#SPADD)を設定すると、加算で描画されます。
指定したいキャラの左上の座標X,Y、幅と高さ、原点(表示や回転などに使用)、アトリビュートを設定します。
ただし、データの一番先頭には取り込む[定義数]を指定します。
合計で「1+(定義データ数×7)」のデータ数が必要です。
v3.3より、SPキャラ番号および、定義座標U,Vのオフセット値が指定できるようになりました。
指定した値にofsの値が加算されて出力されます。
定義データ一個分のデータは、開始座標X,Y,幅,高さ,原点X,原点Y,アトリビュートの7つです。
アトリビュートの値
省略時:1(そのまま表示)数値で指定する場合(プログラムは短くなるが、後で分かりにくい)
反転\回転(右) | なし | 90度 | 180度 | 270度 |
---|---|---|---|---|
なし | 0 | 2 | 4 | 6 |
反転左右 | 8 | 10 | 12 | 14 |
反転上下 | 16 | 18 | 20 | 22 |
反転上下/左右 | 24 | 26 | 28 | 30 |
定数リテラルで指定する場合(プログラムは長くなるが、後でメンテしやすい)
定数 | 値(参考) | |
---|---|---|
表示 | #SPSHOW | 1 |
回転なし | #SPROT0 | 0 |
回転90度 | #SPROT90 | 2 |
回転180度 | #SPROT180 | 4 |
回転270度 | #SPROT270 | 6 |
反転左右 | #SPREVH | 8 |
反転上下 | #SPREVV | 16 |
加算合成 | #SPADD | 32 |
※「#SPSHOW」がないと表示されません。忘れずに!
※加算合成(#SPADD)を設定すると、加算で描画されます。
1つ定義する
指定した定義番号の内容を、スプライト定義のグラフィック(初期値はGRP4。SPPAGEで変更可能)の内容を元に定義します。指定したいキャラの左上の座標X,Y、幅と高さ、原点(表示や回転などに使用)、アトリビュートを設定します。
数値配列から一括で定義する
定義データの入った数値配列(1定義が7要素)から一括で定義します。DATAから一括で定義する
DATAに記述されたデータ(1定義が7要素)から一括で定義します。ただし、データの一番先頭には取り込む[定義数]を指定します。
合計で「1+(定義データ数×7)」のデータ数が必要です。
定義済み情報を取得する
定義されている情報を、数値型変数から取得します。別の定義をコピーする
別の定義内容をコピーします。各値を指定すれば、その値だけコピーされず指定した値がセットされます。v3.3より、SPキャラ番号および、定義座標U,Vのオフセット値が指定できるようになりました。
指定した値にofsの値が加算されて出力されます。
サンプルコード
1つを定義(定義0を、90度回転したさくらんぼにする。)どちらも同じ
数値配列から定義0にセット。データ数を増やせば定義1,2,3…と一括定義可SPDEF 0,32,0,16,16,8,8,3
DATAから定義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]=3SPDEF D
別の定義からコピーする。定義1に定義0を90度回転したものを定義@DATDATA 2 '最初は必ず定義数をセットするDATA 32,0,16,16,8,8,3DATA 32,0,16,16,8,8,4
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
スプライト番号にコールバック処理を割り当て