Top / GBA開発 / SOLA / スプライトの表示

スプライトの表示

説明

一つのスプライトには一つのキャラクタを載せることができます。 スプライトは全部で128枚あり、0番から127番までの数字で区別されています。 0番のスプライトが一番手前に表示され、127番目のスプライトが一番奥に表示されます。

例えば、CharDef で画像番号を1番として定義した画像をスプライト(0番目)として 表示させるには ChangeCharAtSpritePlane関数を使って次のようにします:

ChangeCharAtSpritePlane(1, 0);

スプライト番号0番の画像の移動には SpriteSetPos関数を使います。 例えば、(10,20) に移動させるときには次のようにします:

SpriteSetPos(0, 10, 20); 
 
SpriteSetChar(sp, charnum)スプライトに載せるキャラクタを設定する
spスプライト番号
charnumキャラクタ番号
 
SpriteSetPos(sp, x, y)スプライトの表示位置を設定
spスプライト番号
xX座標(0 〜 239)
yY座標(0 〜 159)
 

サンプル(スプライトの表示)

(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;
}

画面表示

spr1.png

GBA開発/SOLA

サンプル(キーボードによる移動)

キャラクタを変更します。

サンプルソース

#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;
}

画面表示

spr2.png

GBA開発/SOLA


添付ファイル: filespr1.png 155件 [詳細] filespr2.png 134件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-03 (金) 06:37:01 (47d)