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 <Siv3D.hpp> // 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);
}
}