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;
}
示例#2
0
文件: main.c 项目: woaks223/Tetris
//키 입력받는 함수
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);
}
示例#3
0
文件: main.c 项目: woaks223/Tetris
//자동으로 내려가는 부분
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);
	}
}
示例#4
0
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;
        }
	}
}