int main() { /*----------------------------------- main function -----------------------------------*/ int start_games=1; int i=0; int x=8; // x좌표 키값받아서 움직임( 기본값 : 8 ) srand((unsigned)time(NULL)); setcursortype(NOCURSOR); StartScreen(); for(i=0;i<1001; i++) { check_crash(); if(stop==1||start_games==1) { // 블럭 충돌시 또는 게임 시작 시 block_type=rand()%7; x=8; new_block(x,block_height); // 기본위치에 블럭 생성 start_games=0; stop=0; } if(i==10){ i=0; Sleep(10); if(stop==0){ block_height+=1; } } new_block(x,block_height); Sleep(10); } getch(); return 0; }
//키 입력받는 함수 void key_ent() { key = 0; if (kbhit()) { key = getch(); if (key == 224) { do { key = getch(); } while (key == 244); switch (key) { case DOWN: { check_crash(b_x, b_y + 1); if (crash_num == 1) move_block(DOWN); break; } case RIGHT: { check_crash(b_x + 1, b_y); if (crash_num == 1) move_block(RIGHT); break; } case LEFT: { check_crash(b_x - 1, b_y); if (crash_num == 1) move_block(LEFT); break; } case UP: { block_turn(temp); break; } default: break; } } else { } } fflush(stdin); }
//자동으로 내려가는 부분 void auto_down_blcok(void *p) { Sleep(1000); while (1) { int temp_ = 0; check_crash(b_x, b_y + 1); if(crash_num==1) move_block(DOWN); else { for (int i = 0; i < MAP_Y; i++) for (int j = 0; j < MAP_X; j++) if (main_org[i][j] == ACTIVE_BLOCK) main_org[i][j] = INACTIVE_BLOCK; new_block(); } Sleep(game_speed); } }
bool game() { g_score = 0; g_level = 0; g_nEnemy = 1; init(); int key = 0; // 押下されたキー int keyDown = 0; // 押下状態のキー bool update = true; int iv = 10; for (int cnt=1;;++cnt) { if( update ) { int nDot = draw_map(); draw_enemy(); draw_car(); draw_score(); g_db.swap(); if( !nDot ) { // ドット全消去 mciSendString(TEXT("play one23.mp3"), NULL, 0, NULL); Sleep(1000); g_score += g_nEnemy * 1000; if( ++g_level > 1 ) ++g_nEnemy; init(); continue; //return true; } if( check_crash() ) { mciSendString(TEXT("play s-burst01.mp3"), NULL, 0, NULL); return false; } } Sleep(10); update = false; if( !keyDown ) { // キー押下を受け付けていない場合 if( isKeyPressed(VK_LEFT) ) { key = keyDown = VK_LEFT; } else if( isKeyPressed(VK_RIGHT) ) { key = keyDown = VK_RIGHT; } else if( isKeyPressed(VK_UP) ) { key = keyDown = VK_UP; } else if( isKeyPressed(VK_DOWN) ) { key = keyDown = VK_DOWN; } } else { if( !isKeyPressed(keyDown) )// 押されたキーが離された keyDown = 0; } if( cnt % 10 == 0 ) { for (int i = 0; i < (int)g_enemy.size(); ++i) { move_car(g_enemy[i]); change_lane(g_enemy[i]); } update = true; } accel_decel(key, iv); if( cnt % iv == 0 ) { move_car(g_car); change_lane(g_car, key); //move_car(g_car, key); eat_dot(); update = true; iv = 10; } } }