/****************************************************************************** * 関数名: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 ); } } } }
//============================================================================= // 更新処理 //============================================================================= 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)); } }
//============================================================================= // 更新処理 //============================================================================= 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); }
/******************************************************************************* 関数名: 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(); } }