Esempio n. 1
0
File: pause.cpp Progetto: ponyuzu/-
/******************************************************************************
* 関数名:UpdatePause
* 
* 引数  :
* 戻り値:
* 説明  :
******************************************************************************/
void UpdatePause( void )
{

	for( int cnt = 0 ; cnt < PAUSE_TEX_MAX ; cnt++ )
	{

		VERTEX_2D *pVtx;
		g_pause[cnt].pVtxBuffPause -> Lock( 0 , 0 , ( void** ) &pVtx , 0 );

		//頂点カラー設定
		for( int cntCol = 0 ; cntCol < 4 ; cntCol ++ )
		{
			pVtx[cntCol].col = D3DCOLOR_RGBA( 255 , 255 , 255 , 255 );
		}

		g_pause[cnt].pVtxBuffPause -> Unlock();

	}

	switch( g_pausePattarn )
	{
	case PAUSE_CONTINUE:
		{
			VERTEX_2D *pVtx;
			g_pause[1].pVtxBuffPause -> Lock( 0 , 0 , ( void** ) &pVtx , 0 );

			//頂点カラー設定
			for( int cntCol = 0 ; cntCol < 4 ; cntCol ++ )
			{
				pVtx[cntCol].col = D3DCOLOR_RGBA( 255 , 0 , 0 , 255 );
			}

			g_pause[1].pVtxBuffPause -> Unlock();

			break;
		}
	case PAUSE_RETRY:
		{
			VERTEX_2D *pVtx;
			g_pause[2].pVtxBuffPause -> Lock( 0 , 0 , ( void** ) &pVtx , 0 );

			//頂点カラー設定
			for( int cntCol = 0 ; cntCol < 4 ; cntCol ++ )
			{
				pVtx[cntCol].col = D3DCOLOR_RGBA( 255 , 0 , 0 , 255 );
			}

			g_pause[2].pVtxBuffPause -> Unlock();
			break;
		}
	case PAUSE_QUIT:
		{
			VERTEX_2D *pVtx;
			g_pause[3].pVtxBuffPause -> Lock( 0 , 0 , ( void** ) &pVtx , 0 );

			//頂点カラー設定
			for( int cntCol = 0 ; cntCol < 4 ; cntCol ++ )
			{
				pVtx[cntCol].col = D3DCOLOR_RGBA( 255 , 0 , 0 , 255 );
			}

			g_pause[3].pVtxBuffPause -> Unlock();
			break;
		}
	}

	//ポーズ中の処理
	if( g_bPause == true )
	{
		//上に移動
		if( GetKeyboardTrigger( DIK_W ) )
		{
			if( g_pausePattarn == PAUSE_CONTINUE )
			{
				g_pausePattarn = PAUSE_QUIT;
			}
			else if( g_pausePattarn == PAUSE_QUIT )
			{
				g_pausePattarn = PAUSE_RETRY;
			}
			else
			{
				g_pausePattarn = PAUSE_CONTINUE;
			}
		}

		//下に移動
		else if( GetKeyboardTrigger( DIK_S ) )
		{
			if( g_pausePattarn == PAUSE_CONTINUE )
			{
				g_pausePattarn = PAUSE_RETRY;
			}
			else if( g_pausePattarn == PAUSE_RETRY )
			{
				g_pausePattarn = PAUSE_QUIT;
			}
			else
			{
				g_pausePattarn = PAUSE_CONTINUE;
			}
		}

		//enterを押した時の処理
		if( GetKeyboardTrigger( DIK_RETURN ) )
		{
			if( g_pausePattarn == PAUSE_CONTINUE )
			{
				g_bPause = false;
			}
			else if( g_pausePattarn == PAUSE_RETRY )
			{
				SetFade( FADE_OUT , MODE_GAME );
			}
			else
			{
				SetFade( FADE_OUT , MODE_SELECT );
			}
		}
	}

}
Esempio n. 2
0
//=============================================================================
// 更新処理
//=============================================================================
void UpdateGameManager(void)
{
#ifdef _DEBUG
	if(GetKeyboardTrigger(DIK_F1))
	{
		g_nGameMode = SELECTMODE_PLAY;
	}
	if(GetKeyboardTrigger(DIK_F2))
	{
		g_nGameMode = SELECTMODE_WALLEDIT;
	}
	if(GetKeyboardTrigger(DIK_F3))
	{
		g_nGameMode = SELECTMODE_GIMMICKEDIT;
	}
	if(GetKeyboardTrigger(DIK_F4))
	{
		g_nGameMode = SELECTMODE_PLAYEREDIT;
	}
	if(GetKeyboardTrigger(DIK_F5))
	{
		g_nGameMode = SELECTMODE_DELETE;
	}
	if(GetKeyboardTrigger(DIK_F6))
	{
		g_nGameMode = SELECTMODE_SCENECHANGE;
	}
	if(GetKeyboardTrigger(DIK_F7))
	{
		g_nGameMode = SELECTMODE_PLAYERBAR_NUM;
	}
	if(GetKeyboardTrigger(DIK_F8))
	{
		g_nGameMode = SELECTMODE_ITEMNUMEDIT;
	}
	if(g_nGameMode != SELECTMODE_PLAY)
		GetBackG()[BACKGROUND_EDIT_NET].bUse = true;
	else
		GetBackG()[BACKGROUND_EDIT_NET].bUse = false;

#endif

	switch (g_nGameMode)
	{
	case SELECTMODE_PLAY:
	{
		PrintDebugProc("【ゲームモード】\n");
		if(GetTimeCounter()->fCurrentTime > TIME_15)
			g_bIsPlay = false;

		if(!g_bIsPlay)
		{
			if(IsMouseRightTriggered())
			{
				int nGimNum = -1;
				int nItemNum = GetItemNum()->nItemLockTime;
				bool bIsLock = false;

				if(IsGimmickLock(&nGimNum, &bIsLock, &nItemNum) == true)
				{
					if(bIsLock == true)
					{
						SetItem(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), ITEM_TYPE_01, nGimNum);
						UpdataItemNum(-1);
					}
					else
					{
						DeleteItem(nGimNum);
						UpdataItemNum(1);
					}
				}
			}
		}
		break;
	}
	case SELECTMODE_WALLEDIT:
	{
		PrintDebugProc("【壁を編集するモード】\n");
		WallCreateMode();
		break;
	}
	case SELECTMODE_GIMMICKEDIT:
	{
		PrintDebugProc("【ギミック編集モード】\n");
		GimmickCreateMode();
		break;
	}
	case SELECTMODE_PLAYEREDIT:
	{
		PrintDebugProc("【プレイヤー編集モード】\n");
		if(IsMouseLeftPressed())
			IsMouseHitPlayer();
		PlayerEdit();
		break;
	}
	case SELECTMODE_DELETE:
	{
		PrintDebugProc("【削除モード】\n");
		DeleteGimmick();
		DeleteWall();
		break;
	}
	case SELECTMODE_SCENECHANGE:
	{
		PrintDebugProc("【ステージ切り替えるモード】\n");
		if(IsMouseRightTriggered())
		{
			if(*GetSceneNum() < SCENE_TYPE_MAX)
				(*GetSceneNum())++;
			if(*GetSceneNum() == SCENE_TYPE_MAX)
				*GetSceneNum() = 0;
			g_bIsSceneInit = true;
		}

		if(g_bIsSceneInit == true)
		{
			g_bIsSceneInit = false;
			switch (*GetSceneNum())
			{
			case SCENE_01:
				// 从文件中读取
				LoadData(SCENE_01);
				break;
			case SCENE_02:
				// 从文件中读取
				LoadData(SCENE_02);
				break;
			case SCENE_03:
				// 从文件中读取
				LoadData(SCENE_03);
				break;
			case SCENE_04:
				// 从文件中读取
				LoadData(SCENE_04);
				break;
			case SCENE_05:
				// 从文件中读取
				LoadData(SCENE_05);
				break;
			default:
				break;
			}
			// 読み込むデータを初期化
			InitDataPlayer();
			InitDataWall();
			InitDataGimmick();
			InitDataPlayerbar();

			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				// 根据补完的数据对机关场景进行位置和运动预处理
				SetupGimmickTrack(nCntGim);
				*GetCleanupSwitch() = false;
			}
		}
		break;
	}
	case SELECTMODE_PLAYERBAR_NUM:
	{
		PrintDebugProc("【時間軸編集モード】\n");
		PrintDebugProc("数字キー「1」 時間軸数:1\n");
		PrintDebugProc("数字キー「2」 時間軸数:2\n");
		PrintDebugProc("数字キー「3」 時間軸数:3\n");
		if(GetKeyboardTrigger(DIK_1))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			PlaybarNumCount();
		}
		if(GetKeyboardTrigger(DIK_2))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_2);
			PlaybarNumCount();
		}
		if(GetKeyboardTrigger(DIK_3))
		{
			for(int nCntPlayBar = 0; nCntPlayBar < MAX_PLAYBAR; nCntPlayBar++)
			{
				//if(g_pPlaybar_GM[nCntPlayBar].bUse == true)
					g_pPlaybar_GM[nCntPlayBar].bUse = false;
			}
			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				if(g_pGimmick_GM[nCntGim].bUse)
				{
					g_pGimmick_GM[nCntGim].nPriorityNum01 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum02 = -1;
					g_pGimmick_GM[nCntGim].nPriorityNum03 = -1;
				}
			}
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_1);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_2);
			SetPlaybar(D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), PLAYBAR_3_3);
			PlaybarNumCount();
		}
		break;
	}
	case SELECTMODE_ITEMNUMEDIT:
	{
		PrintDebugProc("【アイテム個数編集モード】\n");
		PrintDebugProc("【メニュー】    【アイテム】    【個数】\n");
		PrintDebugProc("数字キー「1」 時間固定アイテム:%d\n\n", g_pItemNum_GM->nItemLockTime);

		if(GetKeyboardTrigger(DIK_1))
		{
			g_nMenuSelect_GM = 1;
		}

		switch (g_nMenuSelect_GM)
		{

			case 1:
				PrintDebugProc("矢印キー【左】、【右】   【プラス/マイナス 1】\n");
				PrintDebugProc("矢印キー【上】、【下】   【プラス/マイナス 5】\n");

				if(GetKeyboardRepeat(DIK_LEFT))
				{
					g_pItemNum_GM->nItemLockTime -= 1;
					if(g_pItemNum_GM->nItemLockTime < 0)
						g_pItemNum_GM->nItemLockTime = 0;
				}
				if(GetKeyboardRepeat(DIK_RIGHT))
				{
					g_pItemNum_GM->nItemLockTime += 1;
					if(g_pItemNum_GM->nItemLockTime > 9)
						g_pItemNum_GM->nItemLockTime = 9;
				}
				if(GetKeyboardRepeat(DIK_DOWN))
				{
					g_pItemNum_GM->nItemLockTime -= 5;
					if(g_pItemNum_GM->nItemLockTime < 0)
						g_pItemNum_GM->nItemLockTime = 0;
				}
				if(GetKeyboardRepeat(DIK_UP))
				{
					g_pItemNum_GM->nItemLockTime += 5;
					if(g_pItemNum_GM->nItemLockTime > 9)
						g_pItemNum_GM->nItemLockTime = 9;
				}
				break;
			default:
				break;
		}

	}
	default:
		break;
	}

	if(!g_bIsPlay)
	{
		switch (*GetSceneNum())
		{
		case SCENE_01:
			PrintDebugProc("【SCENE_01】\n");
			// 今のシーンをセーフする
			if(IsMouseCenterTriggered())
				SaveData(SCENE_01);
			break;

		case SCENE_02:
			PrintDebugProc("【SCENE_02】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_02);
			break;

		case SCENE_03:
			PrintDebugProc("【SCENE_03】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_03);
			break;

		case SCENE_04:
			PrintDebugProc("【SCENE_04】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_04);
			break;

		case SCENE_05:
			PrintDebugProc("【SCENE_05】\n");
			if(IsMouseCenterTriggered())
				SaveData(SCENE_05);
			break;

		default:
			break;
		}
	}

	switch(*GetMode())
	{
	case GAMEMODE_LOGO:
		break;

	case GAMEMODE_TITLE:
	{
		if(GetKeyboardTrigger(DIK_RETURN) || IsMouseLeftTriggered())
			SetFade(FADE_OUT, FADE_IN, GAMEMODE_STAGE_SELECT);
		break;
	}
	case GAMEMODE_STAGE_SELECT:
	{
		g_bIsStop = true;
		g_bIsPlay = false;

		if(GetKeyboardTrigger(DIK_RETURN))
			SetFade(FADE_OUT, FADE_IN, GAMEMODE_GAME);

		if(IsMouseLeftTriggered())
		{
			int pIconNum = 0;
			if(IsMouseHitIcon(&pIconNum) == true)
			{
				*GetSceneNum() = GetGameElement()[pIconNum].nType;
				g_bIsSceneInit = true;
			}
		}

		if(g_bIsSceneInit == true)
		{
			g_bIsSceneInit = false;
			switch (*GetSceneNum())
			{
			case SCENE_01:
				// 从文件中读取
				LoadData(SCENE_01);
				break;
			case SCENE_02:
				// 从文件中读取
				LoadData(SCENE_02);
				break;
			case SCENE_03:
				// 从文件中读取
				LoadData(SCENE_03);
				break;
			case SCENE_04:
				// 从文件中读取
				LoadData(SCENE_04);
				break;
			case SCENE_05:
				// 从文件中读取
				LoadData(SCENE_05);
				break;
			default:
				break;
			}
			// 読み込むデータを初期化
			InitDataPlayer();
			InitDataWall();
			InitDataGimmick();
			InitDataPlayerbar();

			for(int nCntGim = 0; nCntGim < MAX_GIMMICK; nCntGim++)
			{
				// 根据补完的数据对机关场景进行位置和运动预处理
				SetupGimmickTrack(nCntGim);
				*GetCleanupSwitch() = false;
			}
			//*GetMode() = GAMEMODE_GAME;

			SetFade(FADE_OUT, FADE_IN, GAMEMODE_GAME);
		}
		
		break;
	}
	case GAMEMODE_GAME:
		break;

	case GAMEMODE_END:
		break;

	default:
		break;
	}



}
//=============================================================================
// 更新処理
//=============================================================================
void UpdateBillboard(void)
{
	D3DXVECTOR3 rotCamera;

	// カメラの回転を取得
	rotCamera = GetRotCamera();

	if(GetKeyboardPress(DIK_LEFT))
	{
		if(GetKeyboardPress(DIK_UP))
		{// 左前移動
			
			
		}
		else if(GetKeyboardPress(DIK_DOWN))
		{// 左後移動
			
			
		}
		else
		{// 左移動
			
			
		}
	}
	else if(GetKeyboardPress(DIK_RIGHT))
	{
		if(GetKeyboardPress(DIK_UP))
		{// 右前移動
			
			
		}
		else if(GetKeyboardPress(DIK_DOWN))
		{// 右後移動
			
			
		}
		else
		{// 右移動
			
			
		}
	}
	else if(GetKeyboardPress(DIK_UP))
	{// 前移動
		
		
	}
	else if(GetKeyboardPress(DIK_DOWN))
	{// 後移動
		
		
	}

	if(GetKeyboardTrigger(DIK_SPACE))
	{// ジャンプ
		if(g_bEnableGravity == true)
		{	// 上方向へ速度を追加
			g_vecBillboard.y += 10.0f;
		}
	}

	// ビルボードの移動
	g_posBillboard.x += g_vecBillboard.x;
	g_posBillboard.y += g_vecBillboard.y;
	g_posBillboard.z += g_vecBillboard.z;

	// 減速
	g_vecBillboard.x += (0.0f - g_vecBillboard.x) * RATE_REGIST;
	g_vecBillboard.y += (0.0f - g_vecBillboard.y) * RATE_REGIST;
	g_vecBillboard.z += (0.0f - g_vecBillboard.z) * RATE_REGIST;

	// 範囲外チェック
	if(abs(g_vecBillboard.x) < 0.1 &&
		abs(g_vecBillboard.y) < 0.1 &&
		abs(g_vecBillboard.z) < 0.1 &&
		g_bUse){
		g_bUse = false;
		SetExplosion(g_posBillboard, 10, 10);
		ReleaseShadow(g_nIdxShadowBillboard);
		//g_posBillboard.z = 0.0f;
		g_vecBillboard.z = 0.0f;
		//SetVertexBillboard(BILLBOARD_SIZE_X, BILLBOARD_SIZE_Y);
		//g_nIdxShadowBillboard = CreateShadow(g_posBillboard, BILLBOARD_SIZE_X, BILLBOARD_SIZE_Y);
	}
	

	{// 影の設定
		// 位置
		SetPositionShadow(
			g_nIdxShadowBillboard,
			g_posBillboard
		);

		// サイズ
		float fSizeX = BILLBOARD_SIZE_X + (g_posBillboard.y - 9.0f) * 0.025f;
		if(fSizeX < BILLBOARD_SIZE_X)
		{
			fSizeX = BILLBOARD_SIZE_X;
		}
		float fSizeY = BILLBOARD_SIZE_Y + (g_posBillboard.y - 9.0f) * 0.025f;
		if(fSizeY < BILLBOARD_SIZE_Y)
		{
			fSizeY = BILLBOARD_SIZE_Y;
		}
		SetVertexShadow(g_nIdxShadowBillboard, fSizeX, fSizeY);

		// α値
		float colA = (400.0f - (g_posBillboard.y - 9.0f)) / 800.0f;
		if(colA < 0.0f)
		{
			colA = 0.0f;
		}
		SetColorShadow(g_nIdxShadowBillboard, D3DXCOLOR(1.0f, 1.0f, 1.0f, colA));
	}

}
Esempio n. 4
0
//=============================================================================
// 更新処理
//=============================================================================
void UpdateModel(void)
{
	///////////////////////////////////////
	//if (GetKeyboardTrigger(DIK_3))
	//	SetGameState(STATE_ENDING);
	///////////////////////////////////////
	//平行移動
	/*if(GetKeyboardPress(DIK_RIGHT) && Player.bPlayerMove){
		Player.moveModel.z = -cos(Player.rotModel.y + PI / 2) * MOVE_VOL;
		Player.moveModel.x = -sin(Player.rotModel.y + PI / 2) * MOVE_VOL;
	}
	if(GetKeyboardPress(DIK_LEFT) && Player.bPlayerMove){
		Player.moveModel.z = cos(Player.rotModel.y + PI / 2) * MOVE_VOL;
		Player.moveModel.x = sin(Player.rotModel.y + PI / 2) * MOVE_VOL;
	}*/
	if((GetKeyboardPress(DIK_UP) || GetKeyboardPress(DIK_W)) && Player.bPlayerMove){
		Player.moveModel.z = -cos(Player.rotModel.y) * MOVE_VOL;
		Player.moveModel.x = -sin(Player.rotModel.y) * MOVE_VOL;
		//if (GetKeyboardPress(DIK_RIGHT)) {
		//	Player.moveModel.z = -cos(Player.rotModel.y + PI / 4) * MOVE_VOL;
		//	Player.moveModel.x = -sin(Player.rotModel.y + PI / 4) * MOVE_VOL;
		//}
		//else if (GetKeyboardPress(DIK_LEFT)) {
		//	Player.moveModel.z = cos(Player.rotModel.y + PI / 4 * 3) * MOVE_VOL;
		//	Player.moveModel.x = sin(Player.rotModel.y + PI / 4 * 3) * MOVE_VOL;
		//}
	}
	/*if(GetKeyboardPress(DIK_DOWN) && Player.bPlayerMove){
		Player.moveModel.z = cos(Player.rotModel.y) * MOVE_VOL;
		Player.moveModel.x = sin(Player.rotModel.y) * MOVE_VOL;
		if (GetKeyboardPress(DIK_RIGHT)) {
			Player.moveModel.z = -cos(Player.rotModel.y + PI / 4 * 3) * MOVE_VOL;
			Player.moveModel.x = -sin(Player.rotModel.y + PI / 4 * 3) * MOVE_VOL;
		} else if (GetKeyboardPress(DIK_LEFT)) {
			Player.moveModel.z = cos(Player.rotModel.y + PI / 4) * MOVE_VOL;
			Player.moveModel.x = sin(Player.rotModel.y + PI / 4) * MOVE_VOL;
		}
	}*/
	// ジャンプ
	if(GetKeyboardTrigger(DIK_SPACE) && !Player.bPlayerJump){
		Player.bPlayerJump = true;
		PlaySound(SOUND_LABEL_SE_JUMP);
	}

	if (Player.bPlayerJump) {
		Player.moveModel.y = JUMP_VOL * Player.fJumpTime + 1.0f / 2.0f * GRAVITY_VOL * Player.fJumpTime * Player.fJumpTime;
		Player.fJumpTime ++;
	}
	/*
	if(GetKeyboardPress(DIK_I)){
		Player.posModel.y -= MOVE_VOL;
	}*/
	HitChecktoObject();

	// 移動量合算
	Player.posModel += D3DXVECTOR3(Player.moveModel.x, Player.moveModel.y, Player.moveModel.z);

	if (Player.posModel.y < DEFAULTPLAYER_POS.y && Player.bPlayerJump) {
		Player.bPlayerJump = false;
		Player.moveModel.y = 0.0f;
		Player.posModel.y = DEFAULTPLAYER_POS.y;
		Player.fJumpTime = 0;
	}

	Player.moveModel = D3DXVECTOR3(0, 0, 0);

	//回転
	if(GetKeyboardPress(DIK_A) || GetKeyboardPress(DIK_LEFT)){
		Player.rotModel.y -= ROTE_VOL;
	}
	if(GetKeyboardPress(DIK_D) || GetKeyboardPress(DIK_RIGHT)){
		Player.rotModel.y += ROTE_VOL;
	}

	//拡大縮小
	/*if(GetKeyboardPress(DIK_Q)){
		Player.scaleModel.x += SCALE_VOL;
	}
	if(GetKeyboardPress(DIK_W)){
		Player.scaleModel.y += SCALE_VOL;
	}
	if(GetKeyboardPress(DIK_E)){
		Player.scaleModel.z += SCALE_VOL;
	}
	if(GetKeyboardPress(DIK_A)){
		Player.scaleModel.x -= SCALE_VOL;
	}
	if(GetKeyboardPress(DIK_S)){
		Player.scaleModel.y -= SCALE_VOL;
	}
	if(GetKeyboardPress(DIK_D)){
		Player.scaleModel.z -= SCALE_VOL;
	}
	*/
	// 影の位置を設定
	SetPositionShadow(Player.nIdxShadow, Player.posModel);

	// Effect Setting
	SetEffect(Player.posModel, D3DXVECTOR3(0,0,0), D3DXCOLOR(1,1,0,1), 20, 20, 30);
}
Esempio n. 5
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();
	}
}