Exemplo n.º 1
0
static void car_speed() //speeds may need to be adjusted
{
   if(count<-1){
    	 switch(settings.cc){
     	  case 2: speed=5;  break;	//move 150cc
      	  case 1: speed=4;  break;	//move 100cc
       	  case 0: speed=3;  break;	   //move 50cc;
	 }
     	if(wall2==0){move_car();}
   }

	 else{
	   if(z>=10){count--; z=0;}	
	   z++;	
	 }
}
Exemplo n.º 2
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;
        }
	}
}