最新ソースはこちら(gitHub)
https://github.com/takishita2nd/HokkaidoWar
前回作成したこれ。
これの「担当市町村を選択」の処理を作成していきます。
まずは、状態の定義を作成しましょうか。
class HokkaidoWar
{
Player _player = null;
enum GameStatus
{
SelectCity,
ActionEnemy,
ActionPlayer,
ShowResult,
GameEnd
}
GameStatus gameStatus;
上からstatus=1~5に相当します。(実際に振られている値は違いますが)
public void Run()
{
while (asd.Engine.DoEvents())
{
asd.Vector2DF pos = asd.Engine.Mouse.Position;
switch (gameStatus)
{
case GameStatus.SelectCity:
var info = Singleton.GetInfomationWindow();
info.ShowText(pos, "都市を選択してください\r\n");
onMouse(pos);
break;
}
if (asd.Engine.Mouse.LeftButton.ButtonState == asd.ButtonState.Push)
{
switch (gameStatus)
{
case GameStatus.SelectCity:
_player = new Player(getCity(pos));
gameStatus = GameStatus.ActionEnemy;
break;
}
}
asd.Engine.Update();
}
asd.Engine.Terminate();
}
マウスカーソルを動かすと、テキストウィンドウに「都市を選択してください」と表示されます。それに加えて、マップの上にカーソルがあると、その都市の情報も表示します。
マウスをクリックすると、その選択した都市でプレイヤーデータを作成します。
class Player
{
private City city;
public Player(City city)
{
this.city = city;
}
}
そして、statusを「敵の行動」に遷移させます。