| YaneuraoGameSDK yane
sprite定義の方法 |
| |
ここではsprite定義について説明します。
なおサンプルソースはやねうらおさんのページのサンプル4(2001/12/20現在)を参考にしてください。
http://www.sun-inet.or.jp/~yaneurao/
それをみるだけでも理解できると思います。ここに書いてあるのは私自身が混乱してある個所を書いているので、実際のコードにて確認はしてください。(間違ってたらごめんなさい。) |
|
定義
|
説明
|
|
#SpriteMax
|
スプライト数の定義(スプライト数)
#SpriteMax 33
|
| #plane |
プレーンの定義(プレーン番号、画像パス)
#plane 0,"data/ars_1_2.bmp"
複数のプレーンを定義できます。#plane 1
|
| #recta |
矩形定義(開始矩形番号,プレーン番号,開始X座標,開始Y座標,W,H,列,行)
#recta 0,0,128,0,32,32,5,1
連番で使用するときに使用します。連番ではないときはrectを使います。
例ではrectaで連番を指定しています。そして次のrectでは2から始まっています。これはrectaで5列1行から連番を使用すると指定しているので次のrectで2から座標を指定しています。
#recta 0,1,128,0,32,32,5,1 //点滅
#rect 2,1,0,0,32,32 //up
#rect 3,1,32,0,32,32 //right
#rect 4,1,64,0,32,32 //down
#rect 5,1,96,0,32,32 //left |
| #rect |
矩形定義(開始矩形番号,プレーン番号,開始X座標,開始Y座標,W,H)
#rect 2,0,0,0,32,32
rectaとの違いは列,行の指定をしない |
| #rectoffset |
オフセット定義(開始矩形番号,末尾矩形番号,オフセットX座標,オフセットY座標)
#rectoffset 0,2,0,-8
表示する画像の位置をずらして表示したいときに使用します。なお連番での指定ができます。
上の例では0番目から2番目までをY座標で左に8ピクセルずらして表示します。ずらす必要がないのであれば、記述する必要はないと思います。
|
| #sprite |
スプライト定義(スプライト番号,矩形番号,,,以下指定します。)なおスプライト番号は連番で指定しないとエラーになります。または連番でなくても良いようにソースを書き換えます。
Planeに対して個別のスプライトはないみたいです。
例ではrectaで連番を指定しています。そして次のrectでは2から始まっています。これはrectaで5列1行から連番を使用すると指定しているので次のrectで2から座標を指定しています。
そのためsprite定義では2行目(#sprite 1,2)は2から始まっています。つまり1行目(#sprite 0,0,1)で2つの矩形をrectaで定義しているからです。
#sprite 0,0,1 //矩形0番目と1番目を交互に表示します。
#sprite 1,2
#sprite 2,3
#sprite 3,4
#sprite 4,5
上のrectaの1番目をspriteの2番目に指定する。
rectaで指定する利点は同じサイズで連番であれば、rectのように記述する必要がないからです。ただしそれ以降にある画像の番号(位置)はきちんと把握しておく必要がありますが。
なおrectの2行目のrectが2から始まっているのはrectaでアニメするためです。
スプライトはPlaneに対して独立ではないようです。Planeに対して個別のスプライトはない。だからPlane(n)の画像やPlane(n+1)の画像が混合になる。きちんとrect、rectaで区分けをしておきます。
つまりスプライトはすべてに対して共通使用ということになります。
またスプライトは連番でなくてはいけません。(現在の仕様かな)
|
| 例 |
//下の例では画像を表示する例です。スラッシュ2つでコメントです。
#SpriteMax 33
//プレーン定義
#plane 0,"data/ars_1_2.bmp"
#plane 1,"data/arrow.bmp"
//矩形定義(開始矩形番号,プレーン番号,開始X座標,開始Y座標,W,H,列,行)
//rectのplane 1
#recta 0,1,128,0,32,32,5,1 //点滅
#rect 2,1,0,0,32,32 //up
#rect 3,1,32,0,32,32 //right
#rect 4,1,64,0,32,32 //down
#rect 5,1,96,0,32,32 //left
//オフセット定義(開始矩形番号,末尾矩形番号,オフセットX座標,オフセットY座標)
#rectoffset 0,2,0,-8//静止画とアニメ分
#rectoffset 3,3,16,0//
#rectoffset 4,4,0,16//
#rectoffset 5,5,-16,0//
//スプライト定義
#sprite 0,0,0,0,1,1,1//0番と1番を交互に表示
#sprite 1,2//up
#sprite 2,3//r
#sprite 3,4//d
#sprite 4,5//l
|
|
|