//******************************************************* // a cockroach hunter for RexDK ver0.1.0 // product by H.Morotomi 2002.03. //******************************************************* #include #include #define DispWidth 240 #define DispHeight 120 #define CharWidth 16 #define CharHeight 18 #define Scor_X 200 #define Scor_Y 107 extern int __LIB__ DsPrintfe(int,int,int,char *); #define DsPrintf(a,b,c,d) DsPrintfe(a,b,c,d) const char taro1[] = {16, 18, 0x04,0x02, 0x05,0xff, 0x0a,0xe4, 0x3f,0x1f, 0x77,0xc5, 0x6e,0x9a, 0xff,0x77, 0xde,0xff, 0xee,0xff, 0xfe,0xff, 0xfe,0xdf, 0xfe,0xff, 0x7f,0xff, 0x3d,0xff, 0x1f,0xff, 0x0b,0xff, 0x10,0x1c, 0x10,0x07 }; const char taro2[] = {16, 18, 0x1c,0x00, 0xff,0x00, 0x65,0xc0, 0xfe,0xb8, 0xff,0x6c, 0xae,0xfe, 0xff,0xf7, 0x76,0xef, 0xff,0xf7, 0xff,0xff, 0xff,0xff, 0xff,0xff, 0xff,0xfa, 0xff,0xe4, 0xff,0xf8, 0xff,0xc0, 0x40,0x00, 0x38,0x00 }; char *taro_bmps[] = { taro1, taro2 }; //variable typedef struct MSG msg; POINT p; int scor; //***************************************** // addin_end() //***************************************** void addin_end(void){ DsEventClear(); DsDisplayBlockClear(0,0,240,120); DsAddinTerminate(); } //***************************************** // Tmove() //***************************************** int Tmove(int Char_Y,int level){ int Char_X=240,Char_X_old,x; int Char_Y_old,y; int i,f,flag,width; char str[10]; width=CharWidth*2; DsDisplayBlockClear(0,0,240,107); f=1; do{ if (Char_X<0){ DsDisplayBlockClear(0,Char_Y,width,CharHeight); } else{ DsDisplayBlockClear(Char_X_old,Char_Y,width,CharHeight); } for(i=0;i<2;i++){ x=Char_X+i*CharWidth; if ((x>=0)&&(x<=232)){ DsDisplayBitmapDraw( x, Char_Y, taro_bmps[i] , 0); } } // flag=1; // while(flag){ x=Char_X;y=Char_Y; if(Char_X<0){ x=0;width=CharWidth*2+Char_X; } DsSleep(level); DsTouchDataGet(p); if(((p.PointX > x)&&(p.PointX < x+width))&&((p.PointY>Char_Y)&&(p.PointY < Char_Y+CharHeight))){ scor +=1; DsDisplayBlockClear(Scor_X,Scor_Y,40,12); itoa(str,scor);DsPrintf(Scor_X,Scor_Y,0,str); if (Char_X<0){ DsDisplayBlockClear(0,Char_Y,width,CharHeight); } else{ DsDisplayBlockClear(Char_X,Char_Y,width,CharHeight); } return 0; } p.PointX=255;p.PointY=255; // DsReadMessage(msg,1); // if ((msg.message== MSG_DS_KEY_DOWN)&&(msg.sCode==KEY_TOP_C)){ // addin_end(); // } // switch (msg.message) // { // case MSG_DS_KEY_DOWN: // if(msg.sCode==KEY_ENTER_A) {flag=0;} // break; // } // } Char_X_old = Char_X; Char_X -=CharWidth; if(Char_X<(-2*CharWidth)){ f=0; } }while(f); return 1; } //***************************************** // start_init() //***************************************** void start_init(void){ DsEventClear(); DsDisplayBlockClear(0,0,240,120); DsPrintfe(60,50,0,"a Cockroach Hunter"); DsDialogTextButton(40,80,60,16,0x80,"Start"); DsDialogTextButton(140,80,60,16,0x50,"End"); } //***************************************** // game_end() //***************************************** void game_end(void){ char str[10]; DsEventClear(); DsDisplayBlockClear(0,0,240,120); DsPrintfe(60,50,0,"Scor="); itoa(str,scor);DsPrintf(90,50,0,str); DsDialogTextButton(40,80,60,16,0x80,"ReTry"); DsDialogTextButton(140,80,60,16,0x50,"End"); scor=0; } //***************************************** // game() //***************************************** void game(void){ int y,miss; char str[10]; DsPrintf(Scor_X-30,Scor_Y,0,"Scor="); DsPrintf(10,Scor_Y,0,"Miss="); while(1){ y = (rand()%5)*20; miss +=Tmove(y,10); DsDisplayBlockClear(40,Scor_Y,40,12); itoa(str,miss);DsPrintf(40,Scor_Y,0,str); if (miss==3) return; DsEventMessageGet(msg); if ((msg.message== MSG_DS_KEY_DOWN)&&(msg.sCode==KEY_TOP_C)) addin_end(); } } //***************************************** // main() //***************************************** void main(void){ //int y; start_init(); while(1){ DsEventMessageGet(msg); switch (msg.message){ case MSG_DS_CLOSE: addin_end(); break; case MSG_DS_PAINT: start_init(); break; case MSG_DS_COMMAND: if (msg.sCode==MSG_DS_COMMAND_DOWN){ switch (msg.bCode){ case 0x80: DsEventClear(); DsDisplayBlockClear(0,0,240,120); game(); game_end(); break; case 0x50: addin_end(); break; } } break; case MSG_DS_KEY_DOWN: switch (msg.sCode){ case KEY_TOP_C: addin_end(); break; case KEY_ENTER_A: // y = (rand()%5)*20; // Tmove(y,1); break; } } } }