extern "C"{ #include #include //#include } #define MAP_X 130 #define BLOCKS_LEN 17 using namespace std; int sx = 0; int x = 100; int y = 30; extern bopti_image_t img_tilemap; extern bopti_image_t img_numbers; int game_map[MAP_X+1][7] = {0}; int opt = GETKEY_DEFAULT | GETKEY_REP_ARROWS | GETKEY_MENU; int optd = GETKEY_DEFAULT | GETKEY_MENU; int timeout = 1; int key; int rwalk =0; int can_move = 1; int dir = 1; int vdir; int sele = 2; int vas = 0; int sinv = 3; int inv[BLOCKS_LEN+1] = {0}; int btmp = sinv; int selecoll = 0; int isCollide(int num){ if(num==0){return 1;} else if(num==3){return 1;} else if(num==14){return 1;} else if(num==15){return 1;} else if(num==16){return 1;} else{return 0;} } int isMultipleof5 (int n) { while ( n > 0 ) n = n - 5; if ( n == 0 ) return 1; return 0; } void PrintSblock(int num,int x,int y){ dsubimage(x*10, y*10+4 ,&img_tilemap,num*10,10,10, 10, DIMAGE_NONE); } void PrintMap(){ int cx = MAP_X; int cy = 6; dsubimage(116, 0 ,&img_tilemap,sinv*10,0,10, 10, DIMAGE_NONE); dhline(12,C_BLACK); dprint(96, 0, C_BLACK, "%d", inv[sinv]); while(cx>0){ cy = 6; while(cy>0){ dsubimage(cx*10-sx, cy*10+4 ,&img_tilemap,game_map[cx][cy]*10,0,10, 10, DIMAGE_NONE); /*if(game_map[cx][cy]==2&&game_map[cx][cy]>1&&game_map[cx][cy]10 && i0){selecoll--;} if(keydown(KEY_F6)&&selecoll==0){ if(sinv==BLOCKS_LEN+1){sinv=0;} sinv++; } if(can_move == 1 && game_map[x/10][y/10+1] == 0){ can_move = 0; rwalk=10; vdir=2; } if(can_move==0&&rwalk>0){ rwalk--; if(vdir==1){x++;} if(vdir==2){y++;} if(vdir==3){x--;} if(vdir==0){y--;} if(rwalk==0){can_move = 1;} } } getkey(); return 1; }