===== 状態遷移の元の処理をピックアップ ===== frameCount 0~5 何もしない 5~8 歩く 9-12 飛ぶ 13-16 何もしない 17-20 しゃがむ 20-  ひたすら歩く game_state = TITLEですたーと ①TITLE 画面がクリックされるまで  〇タイトルロゴを表示  クリックされたら、  〇game_state = PLAY ②PLAY すごろくの処理を書く  自コマはゴールにいるか?   YES:    〇game_state=GAMEOVER   NO: 〇ゴールにたどり着くまで以下を繰り返し      サイコロを振る      コマをサイコロ分動かす  ③GAMEOVER  画面がクリックされるまで   〇おめでとうのメッセージを表示   クリックされたら   〇game_state=TITLE # include // OpenSiv3D v0.6.10 void Main() { // 背景の色を設定する | Set the background color Scene::SetBackground(ColorF{ 0.6, 0.8, 0.7 }); // 絵文字からテクスチャを作成する | Create a texture from an emoji const Texture emoji{ U"🦖"_emoji }; // 太文字のフォントを作成する | Create a bold font with MSDF method const Font TitleFont{ FontMethod::MSDF, 48, Typeface::Bold }; // テキストに含まれる絵文字のためのフォントを作成し、font に追加する | Create a font for emojis in text and add it to font as a fallback const Font emojiFont{ 48, Typeface::ColorEmoji }; TitleFont.addFallback(emojiFont); //int gameState = 0; //0:タイトル 1:プレイ画面 2:ゲームオーバー //列挙型 enumurate enum gState { TITLE, PLAY, GAMEOVER, HIGHSCORE, }; gState gameState = gState::TITLE; while (System::Update()) { //if (TitleFont(U"タイトル画面").drawAt(Scene::Center(), Palette::Navy).leftClicked()) //{ // TitleFont(U"プレイ画面").drawAt(Scene::Center(), Palette::Lightyellow); //} if (MouseL.up()) { switch (gameState) { case gState::TITLE: gameState = gState::PLAY; break; case gState::PLAY: gameState = gState::GAMEOVER; break; case gState::GAMEOVER: gameState = gState::TITLE; break; default: gameState = gState::PLAY; } } if (gameState == 0) { TitleFont(U"タイトル画面").drawAt(Scene::Center(), Palette::Navy); } else if (gameState == 1) { TitleFont(U"プレイ画面").drawAt(Scene::Center(), Palette::Lightyellow); //すごろく本体 } else TitleFont(U"GAME OVER").drawAt(Scene::Center(), Palette::Crimson); } }