スプライトの表示説明一つのスプライトには一つのキャラクタを載せることができます。 スプライトは全部で128枚あり、0番から127番までの数字で区別されています。 0番のスプライトが一番手前に表示され、127番目のスプライトが一番奥に表示されます。 例えば、CharDef で画像番号を1番として定義した画像をスプライト(0番目)として 表示させるには ChangeCharAtSpritePlane関数を使って次のようにします: ChangeCharAtSpritePlane(1, 0); スプライト番号0番の画像の移動には SpriteSetPos関数を使います。 例えば、(10,20) に移動させるときには次のようにします: SpriteSetPos(0, 10, 20);
サンプル(スプライトの表示)(10,20) の場所に キャラクタを表示します。 サンプルソース#include "sola.h" const u8 hikou_data[16][(16+1)]={ //飛行機の画像データ
//----------------
" 99 ",
" 9AA9 ",
" 9AA9 ",
" 9ABBA9 ",
" 9ABBA9 ",
" A 9ABCCBA9 A ",
" A 9AB11BA9 A ",
" A9ABC11CBA9A ",
" A9ABC11CBA9A ",
" 9ABCCAACCBA9 ",
" 9ABCCAACCBA9 ",
" 9ABCCCAACCCBA9 ",
" 9ABCCCCCCCCBA9 ",
"99AB99ABBA99BA99",
" 99 ABBA 99 ",
" 99 9999 99 ",
//----------------
};
int main() {
Init_SOLA();
CharDef(1, hikou_data);
SpriteSetPallet(0, 4);
SpriteSetChar(0, 1);
SpriteSetPos(0, 10, 20);
while(1) {
WaitForVsync();
}
return 0;
}
画面表示サンプル(キーボードによる移動)キャラクタを変更します。 サンプルソース#include "sola.h"
const u8 hikou_data[16][(16+1)]={ //飛行機の画像データ
"0000000770000000",
"0000007667000000",
"0000007667000000",
"0000076556700000",
"0000076556700000",
"0060765445670600",
"0060765115670600",
"0067654114567600",
"0067654114567600",
"0076544664456700",
"0076544664456700",
"0765444664445670",
"0765444444445670",
"7765776556775677",
"0077006556007700",
"0077007777007700",
};
const u8 teki_data[16][(16+1)]={ //敵の画像データ
"0000000000000000",
"2000000000000002",
"0200000000000020",
"0020000000000200",
"0002000000002000",
"0020200000020200",
"0020020000200200",
"0000000000000000",
"0200000000000020",
"0020000000000200",
"0202200000022020",
"0020022222200200",
"0202002002002020",
"0020002002000200",
"0002000220002000",
"0000000220000000",
};
int main() {
u8 e1=0,e2=0;
u8 e_id=0;
Init_SOLA();
e1=CharDef(1, hikou_data);
e2=CharDef(1,teki_data);
SpriteSetPallete(0, 11);
while(1) {
if(PUSHED_UE) {
e_id=e1;
} else {
e_id=e2;
}
SpriteSetChar(e_id, 0);
SpriteSetPos(0, 0, 0);
WaitForVsync();
}
return 0;
}
画面表示 |
||||||||||||||||||||||