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);
 
 
	}
}
  • game-engineer/classes/2023/game-programing-1/first-term/6/06-12-1.txt
  • 最終更新: 3年前
  • by root