図0115a
画像が点滅してますので、コントローラの左スティック上下で移動させて、選択し、Aボタンを押します。すると、ゲームステージが出てきます。
図0115b
Bボタンでセレクト画面に戻ります。
class Scene : public SceneBase {
//中略
//現在セレクトされているステージナンバー
int m_SrageNum;
public:
//中略
//ステージナンバーのアクセサ
int GetStageNum() const {
return m_SrageNum;
}
void SetStageNum(int i) {
m_SrageNum = i;
}
};
void SelectStage::OnUpdate() { //シーンの取得 auto PtrScene = App::GetApp()->GetScene<Scene>(); int StageNum = PtrScene->GetStageNum(); //コントローラの取得 auto CntlVec = App::GetApp()->GetInputDevice().GetControlerVec(); if (CntlVec[0].bConnected) { //ゲームステージへ //Aボタン if (CntlVec[0].wPressedButtons & XINPUT_GAMEPAD_A) { PostEvent(0.0f, GetThis<SelectStage>(), PtrScene, L"ToGameStage"); return; } if (!m_CntrolLock) { if (CntlVec[0].fThumbLY >= 0.8f) { StageNum--; if (StageNum < 1) { StageNum = 3; } m_CntrolLock = true; PtrScene->SetStageNum(StageNum); ChangeSelect(StageNum); } else if (CntlVec[0].fThumbLY <= -0.8f) { StageNum++; if (StageNum > 3) { StageNum = 1; } m_CntrolLock = true; PtrScene->SetStageNum(StageNum); ChangeSelect(StageNum); } } else { if (CntlVec[0].fThumbLY == 0.0f) { m_CntrolLock = false; } } } }
void GameStage::OnCreate() { try { //シーンの取得 auto PtrScene = App::GetApp()->GetScene<Scene>(); wstring DataDir; App::GetApp()->GetDataDirectory(DataDir); switch (PtrScene->GetStageNum()) { case 1: //CSVファイルの確定 m_GameStageCsv.SetFileName(DataDir + L"GameStage1.csv"); break; case 2: //CSVファイルの確定 m_GameStageCsv.SetFileName(DataDir + L"GameStage2.csv"); break; case 3: //CSVファイルの確定 m_GameStageCsv.SetFileName(DataDir + L"GameStage3.csv"); break; default: //それ以外はステージ1 //CSVファイルの確定 m_GameStageCsv.SetFileName(DataDir + L"GameStage1.csv"); break; } m_GameStageCsv.ReadCsv(); ////CSVファイルそのBの読み込み m_GameStageCsvB.SetFileName(DataDir + L"GameStageB.csv"); m_GameStageCsvB.ReadCsv(); //中略 } catch (...) { throw; } }