【北海道大戦】メインシーンの作り直し

前回までの状況はこちら。

はい、大幅に書き換えました。

詳細はgitHubのソースを見て欲しいのですが、

https://github.com/takishita2nd/HokkaidoWar

まず、メインシーンで使用していたデータは全てGameDataクラスに移動しました。

    class GameData
    {
        public enum GameStatus
        {
            None,
            SelectCity,
            ActionEnemy,
            ActionPlayer,
            ShowResult,
            GameEnd,
            GameOver
        }

        public GameStatus gameStatus = GameStatus.None;
        public List<City> Cities = null;
        public List<City> AliveCities = null;
        public Battle Battle = null;
        public Player Player = null;

このクラスはシングルトンで管理します。

    class Singleton
    {
        private static GameData _gameData = null;

        public static GameData GetGameData()
        {
            if (_gameData == null)
            {
                _gameData = new GameData();
            }
            return _gameData;
        }

このシングルトンクラス、ゲッターのでいいんじゃないかと思い始めた。

やっていることは同じですが。

メソッドでやるか、プロパティでやるかの違いです。

気が向いたら直します。

シーン遷移は全てシーンクラスのインスタンスを作り直します。

            if (asd.Engine.Mouse.LeftButton.ButtonState == asd.ButtonState.Push)
            {
                var scene = new MainScene();
                asd.Engine.ChangeScene(scene);
            }

そのときに、ゲームデータを元に画面を作り直す、という感じです。

これで、バトルシーンからメインシーンに切り替わっても、ゲームが止まることは無くなりました。

これでやっと次に進める・・・。

「【北海道大戦】メインシーンの作り直し」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください