示例#1
0
bool mytank::FrameFunc(float dt)
{
	b2Vec2 Rot(0,0);
    HGE *hge = Game::Instance()->GetSysInterface()->GetHge();

    

	if (m_bullet.GetEnable())
	{
	    //
	}
	else
	{

        if (hge->Input_GetKeyState(HGEK_LEFT))
        {
            m_info.m_gunangle += 0.1f;
    		if (m_info.m_gunangle > 180)
    		{
                m_info.m_gunangle = 180;
    		}
    		else
    		{
                UpdateGun();
    		}
    
    	}
        if (hge->Input_GetKeyState(HGEK_RIGHT))
        {
            m_info.m_gunangle -= 0.1f;
    		if (m_info.m_gunangle < 0)
    		{
                m_info.m_gunangle = 0;
    		}
    		else
    		{
                UpdateGun();
    		}
    
    	}
        if (hge->Input_GetKeyState(HGEK_UP))
        {
            if (m_info.m_gunangle <90.0f)
            {
                m_info.m_gunangle += 0.1f;
        		if (m_info.m_gunangle > 90.0f)
        		{
                    m_info.m_gunangle = 90.0f;
        		}
        		else
        		{
                    UpdateGun();
        		}
            }
            if (m_info.m_gunangle >90.0f)
            {
                m_info.m_gunangle -= 0.1f;
        		if (m_info.m_gunangle < 90.0f)
        		{
                    m_info.m_gunangle = 90.0f;
        		}
        		else
        		{
                    UpdateGun();
        		}
            }

    	}

        if (hge->Input_GetKeyState(HGEK_DOWN))
        {
            if (m_info.m_gunangle <90.0f)
            {
                m_info.m_gunangle -= 0.1f;
        		if (m_info.m_gunangle < 0.0f)
        		{
                    m_info.m_gunangle = 0.0f;
        		}
        		else
        		{
                    UpdateGun();
        		}
            }
            if (m_info.m_gunangle >90.0f)
            {
                m_info.m_gunangle += 0.1f;
        		if (m_info.m_gunangle > 180.0f)
        		{
                    m_info.m_gunangle = 180.0f;
        		}
        		else
        		{
                    UpdateGun();
        		}
            }

    	}


        if (!m_powering)
        {
			m_info.m_power = 0;
		}
	
        if (hge->Input_GetKeyState(HGEK_SPACE))
        {

			m_info.m_power+= 0.05f;
			m_powering = true;
			if (m_info.m_power >= 100.0f)
			{
				m_info.m_power = 100.0f;
			}
    	}
		else
		{
            if (m_powering)
            {
                Fire();
				m_powering = false;
			}
		}
		

    
	}
    return objtank::FrameFunc(dt);;
}
示例#2
0
BOOL objtank::Init()
{
    UpdateGun();
    return true;
}
示例#3
0
/*******************************************************************************
関数名:	void UpdateGame(void)
引数:	なし
戻り値:	なし
説明:	ゲームの更新関数
*******************************************************************************/
void UpdateGame(void)
{
	//初期値
	g_fTimeSpeed = 0.01f;

	GAME_STEP stepNow = GetGameStep();
	switch(stepNow)
	{
		case STEP_PLAY:

			UpdatePlayer();
			UpdateCamera();
			UpdateGun();
			
			UpdatePlayerBullet(g_fTimeSpeed);
			UpdateEnemy( g_fTimeSpeed);
			UpdateEnemyBullet( g_fTimeSpeed);

			//UpdateBillBoard();
			UpdateParticle( g_fTimeSpeed);
			UpdateStageManager( g_fTimeSpeed);

			//UpdateModel();
			UpdateGunSight();
			UpdateItemBullet();
			UpdateClock( g_fTimeSpeed);
			UpdateTime( g_fTimeSpeed);

			if(GetKeyboardTrigger(DIK_P) )
			{
				SetGameStep(STEP_PAUSE);
				SetMessage(MSG_PAUSE);
			}
			break;
		case STEP_SHOOT:
			
			ChangeTimeSpeed( 1.0f);
			
			UpdateEnemy( g_fTimeSpeed);
			//UpdatePlayer();
			UpdatePlayerBullet( g_fTimeSpeed);
			//UpdateEnemyBullet( g_fTimeSpeed);
			UpdateClock( g_fTimeSpeed);
			UpdateTime( g_fTimeSpeed);

			g_nCounterShoot++;
			if( g_nCounterShoot > 15)
			{
				g_nCounterShoot = 0;
				SetGameStep(STEP_PLAY);
			}
			break;
		case STEP_PAUSE:
			StopSound();
			if(GetKeyboardTrigger(DIK_P) )
			{
				SetGameStep(STEP_PLAY);
				ClearMessage(MSG_PAUSE);
			}
			break;
		case STEP_DIE:
			ChangeTimeSpeed( 1.0f);

			UpdateEnemy( g_fTimeSpeed);
			UpdateEnemyBullet( g_fTimeSpeed);
			UpdatePlayerBullet( g_fTimeSpeed);
			UpdateParticle( g_fTimeSpeed);

			g_nCounterFrame++;
			if( g_nCounterFrame > 90)
			{
				g_nCounterFrame = 0;
				if( GetPlayer()->nLife <= 0)
				{
					FadeOutToNext(MODE_RESULT);
				}
				else
				{
					FadeOutToNext(STEP_RESET);
					SetGameStep(STEP_NOTHING);
				}
				
			}

			break;
		case STEP_RESET:
			InitStageManager( false, GetPlayer()->nLife);
			SetGameStep(STEP_PLAY);	
			break;
		case STEP_CLEAR:
			StopSound(SOUND_LABEL_SE_RUN);
			SetMessage(MSG_STAGECLEAR);

			g_nCounterFrame++;
			if( g_nCounterFrame > 90)
			{
				g_nCounterFrame = 0;

				switch(GetStageMode())
				{
				case STAGE0:
					FadeOutToNext(STAGE1);
					break;
				case STAGE1:
					FadeOutToNext(STAGE2);
					break;
				case STAGE2:
					FadeOutToNext(STAGE3);
					break;
				case STAGE3:
					FadeOutToNext(MODE_RESULT);
					g_bGameClear = true;
					break;
				}
				
				SetGameStep(STEP_NOTHING);
			}
			break;
		case STEP_NOTHING:
			//just let time go, and do nothing
			break;
	}	

	//UI update
	UpdateNumBullet();

	//Debug update
	UpdateMeshDome();

	if(GetKeyboardTrigger(DIK_RETURN) )
	{	
		FadeOutToNext(MODE_RESULT);
	}
	if(GetKeyboardTrigger(DIK_F3))
	{	
		PlaySound( SOUND_LABEL_SE_CLEAR);
		SetGameStep(STEP_CLEAR);
	}
	if(GetKeyboardTrigger(DIK_F2))
	{
		PlaySound(SOUND_LABEL_SE_SWITCH);
		SwitchDebug();
	}
}