前回までの状況はこちら。
はい、大幅に書き換えました。
詳細は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件のフィードバック