#makefile メイクファイル
# makefile for sprite_1
#include ../makefile.inc
all: spr_1.fx
spr_1.fx: main.fx
copy main.fx spr_1.fx
main.fx: main.bin
main.bin: main.obj
main.obj: main.cmain.cf cfファイル
name: sprite_1
info: スプライト表示2
mode: 7
source: main.bin
output: main.fx/* main.c sprite_1のメインソース */
#include <sys/bios.h>#include "arrow.h"
#define ANIMATION_TIME 30 /* スプライトの表示内容を切り替える時間 */
int main()
{
int anime = 2; /* スプライトに設定するキャラクタ番号 */
unsigned long lasttime = sys_get_tick_count(); /* 現在の時間を得ておく */display_control( DCM_SCR1 | DCM_SPR ); /*ディスプレイの設定。SCREEN1を使用し、スプライトを使用する。*/
font_set_monodata( 0 , 4 , bmp_arrow ); /*bmp_arrow配列をキャラクタとして登録 */
sprite_set_range(0,1); /* 使用するスプライトの数を設定 */screen_fill_char( 0 , 0 , 0 , SCREEN_CHAR_WIDTH , SCREEN_CHAR_HEIGHT , 0 ); /* 画面表示内容を初期化(画面全体をキャラクタ0で塗りつぶす) */
sprite_set_char_location( 0 , anime , 10 , 10 ); /* 0番のスプライトにanime番のキャラクタを割り当て、表示位置は(10,10)にする */
/* STARTボタンを押すまで繰り返す */
while( key_press_check() != KEY_START ){
unsigned long nowtime = sys_get_tick_count(); /* 現在の時間を得る */
if( nowtime - lasttime > ANIMATION_TIME ){ /* スプライトの表示内容を切り替える時間がきたかどうか */
lasttime = nowtime;
anime = (anime == 2) ? 3 : 2; /* スプライト0に設定するキャラクタ番号を切り替える */
sprite_set_char( 0 , anime ); /* スプライト0にanime番のキャラクタを割り当てる */
}
}return 0;
}/* arrow.h bmpcnvを使用して作成したグラフィックデータ */
#define arrow_width 2
#define arrow_height 2
unsigned char bmp_arrow[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 背景用 */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* 未使用 */
0xC0, 0xF0, 0xFC, 0xFF, 0xFF, 0xFC, 0xF0, 0xC0, /* 塗りつぶされた三角 */
0x80, 0x10, 0x84, 0x01, 0x01, 0x84, 0x10, 0x80, /* 白抜きされた三角 */