extern "C"{ #include #include //#include } #define MAP_X 250 #define BLOCKS_LEN 17 #define CRAFTS 2 using namespace std; int sx = 0; int x = 100; int y = 30; extern bopti_image_t img_tilemap; extern bopti_image_t img_craft; int8_t 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 rockminer_interval; int craftdata[][6] = {{5,1,4,2,15,1},{3,2,15,4,0,0}}; int s = 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]0){s--;} dupdate(); } } int main(void) { int i = 10; while(i10 && i 0){ if(sele==1&&game_map[x/10+1][y/10]==0){game_map[x/10+1][y/10]=sinv;inv[sinv]--;} if(sele==2&&game_map[x/10][y/10+1]==0){game_map[x/10][y/10+1]=sinv;inv[sinv]--;} if(sele==3&&game_map[x/10-1][y/10]==0){game_map[x/10-1][y/10]=sinv;inv[sinv]--;} if(sele==0&&game_map[x/10][y/10-1]==0){game_map[x/10][y/10-1]=sinv;inv[sinv]--;} } if(can_move ==1 && keydown(KEY_SQUARE)){ if(sele==1){inv[game_map[x/10+1][y/10]]++;game_map[x/10+1][y/10]=0;} if(sele==2){inv[game_map[x/10][y/10+1]]++;game_map[x/10][y/10+1]=0;} if(sele==3){inv[game_map[x/10-1][y/10]]++;game_map[x/10-1][y/10]=0;} if(sele==0){inv[game_map[x/10][y/10-1]]++;game_map[x/10][y/10-1]=0;} } if(selecoll>0){selecoll--;} if(keydown(KEY_F6)&&selecoll==0){ if(sinv==BLOCKS_LEN+1){sinv=1;} sinv++; selecoll = 30; } if(keydown(KEY_F5)&&selecoll==0){ if(sinv==1){sinv=BLOCKS_LEN+1;} sinv--; selecoll = 30; } if(keydown(KEY_F1)){ craftmenu(); } 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; }