since : 2001.11.1 Junk Shop
DataSlim2's Room
RexDKで、データスリム2のアドインを作る。
画像ファイルの表示ができたので、これを動くようにプログラムを変更して行きます。
その前に、前項目で作ったプログラムの内容を解説しておきます。
#include <rex/rex.h> //←Rex用のヘッダーファイルを指定しています。 #include <stdlib.h> /*以下5分割したbitmapfileのデータを宣言しています。*/ const char taro1[] = {0x08,0x1a,0x02,0x01,0x01,0x00,0x00,0x05,0x1b,0x26,0x3e,0x67,0xad,0x57, 0x6f,0xff,0xff,0xff,0xbf,0xff,0x1f,0x0f,0x03,0x04,0x08,0x08,0x10,0x00}; const char taro2[] = {0x08,0x1a,0x00,0x00,0x03,0xbc,0xc3,0x3e,0xf0,0xab,0xd6,0x6d,0xbb,0xbf, 0xbf,0x80,0xbb,0xbf,0xbf,0x5f,0x7b,0x76,0xed,0xf7,0x0b,0x00,0x00,0x00}; const char taro3[] = {0x08,0x1a,0x20,0x40,0xff,0x86,0xff,0xbf,0xd6,0x6b,0xb5,0x5e,0xf5,0xff, 0xff,0x00,0xff,0xff,0xff,0xff,0xfd,0xff,0xd6,0x7f,0xa4,0xdb,0x20,0x10}; const char taro4[] = {0x08,0x1a,0x00,0x03,0xfc,0x25,0xf8,0xf6,0xdd,0x6b,0xae,0xf5,0xaa,0xff, 0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xf8,0x06,0xeb,0x00,0x00}; const char taro5[] = {0x08,0x1a,0x00,0x80,0x00,0x00,0x00,0x00,0xc0,0x78,0xe4,0xbe,0xd7,0xab, 0xff,0x01,0xff,0xff,0xfa,0xf4,0x88,0xd0,0x20,0x80,0x00,0xa0,0x40,0x00}; /*以下多元配列が使えないので、上記データの先頭アドレスを配列化しています*/ char *taro_bmps[] = { taro1, taro2, taro3, taro4, taro5 }; /*ここからメインプログラムです。*/ main(){ int x=10;//画像のx座標用の変数を宣言し初期値を10としています int y=20;//画像のy座標用の変数を宣言し初期値を20としています int i;//ループ用の変数を宣言しています。 DsDisplayBlockClear(0,0,240,120);//画面を消去しています。 /*以下のfor文で画像を8dotおきに表示します*/ for(i=0;i<5;i++){ DsDisplayBitmapDraw( x+i*8, y, taro_bmps[i] , 0); } /*プログラムが終了しないように、無限ループを入れてあります。*/ while(1){ } } //この位置に改行コードを入れる事。
こんな感じで大した事は行っていません。
ここから画像を動かすプログラムを書きますが、その前に#define文で画面サイズとキャラクター(画像)のサイズを以下のように定義しておきました。
キャラクターを動ごかすアルゴリズムは、まず現在描画されているキャラクターを消し少し移動した位置に新しいキャラクターを描画する事の繰り返しで行います。
main(){ int x=200; int y=20; int i; DsDisplayBlockClear(0,0,240,120); while(x>0){ //xの値が0になるまで繰り返しを行います DsDisplayBlockClear(x,y,5*CharWidth,CharHeight); //キャラクターの消去 x -=CharWidth; //xの値をCharWidth分だけ左に移動 for(i=0;i<5;i++){ //キャラクターの描画 DsDisplayBitmapDraw( x+i*CharWidth, y, taro_bmps[i] , 0); } } /*プログラムが終了しないように、無限ループを入れてあります。*/ while(1){ } }
こんな感じになります。
これで、ゴキブリが右から左に動くプログラムができました。
Copyright 2001-2002 Hideo Morotomi