Ejemplo n.º 1
0
        public void Update(GameTime gameTime)
        {
            if (!mapGenerator.IsEnd())               //生成が終わってなかったら生成し続ける
            {
                mapGenerator.LoadFormFile(
                    stageManager.CurrentDungeonNum(),
                    stageManager.CurrentFloor());
                return;
            }
            if (!stageInfoLoader.IsItemLoad())       //Item読み込む
            {
                stageInfoLoader.LoadFloorItem(
                    gameManager.ItemManager,
                    gameManager.StageNum,
                    stageManager.CurrentFloor());
                return;
            }
            if (!stageInfoLoader.IsEnemyLoad())      //敵の配置を読み込む
            {
                stageInfoLoader.LoadFloorEnemy(
                    gameManager.EnemySetting,
                    gameManager.StageNum,
                    stageManager.CurrentFloor());
                return;
            }
            if (!stageInfoLoader.IsBossBGMLoad())    //BGMを読み込む
            {
                stageInfoLoader.LoadBossBGM(
                    gameManager.StageNum,
                    stageManager.CurrentFloor(),
                    gameDevice.Sound);
                return;
            }

            stageManager.SetBGM(stageInfoLoader.BGMName());             //BGMを設定

            gameManager.GenerateMapInstance(mapGenerator.MapChip);      //実体を生成し、シーンを終わらせる
            endFlag = true;
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 進捗状況更新
 /// </summary>
 public void UpdateDungeonProcess()
 {
     dungeonProcess.UpdateProcess(stageManager.CurrentDungeonNum(), stageManager.CurrentFloor());
 }
Ejemplo n.º 3
0
        public void Initialize(SceneType lastScene)
        {
            endFlag   = false;                      //終了フラグ初期化
            nextScene = SceneType.LoadMap;
            if (lastScene == SceneType.Pause)       //Pauseから来た場合は以下のもの初期化しない
            {
                return;
            }

            pManager.Initialize();
            gameDevice.MainProjector.SetRelativePosition(new Vector3(0, 6, 12f));
            currentFloor = stageManager.CurrentFloor();

            #region Map初期化
            map = gameManager.GetDungeonMap();      //生成したマップを取得
            if (map == null)                        //エラー対策 マップが正常に生成されてなかったらLoadingに戻る
            {
                nextScene = SceneType.LoadMap;
                endFlag   = true;
                return;
            }
            map.Initialize(gameManager.BlockStyle);                       //マップを初期化
            map.SetExitColor(stageManager.ConstactColor());
            #endregion

            #region Item初期化
            mapItemManager = new MapItemManager(gameManager, gameDevice);
            mapItemManager.Initialize();
            int itemAmount = stageManager.CurrentFloor() / 10 + stageManager.StageSize() / 10;    //初期落ちているアイテムの数
            itemAmount = gameDevice.Random.Next(0, itemAmount + 1);
            for (int i = 0; i < itemAmount; i++)
            {
                Vector3 randomSpace = map.RandomSpace();
                if (randomSpace == Vector3.Zero)                    //Error対策
                {
                    break;
                }

                mapItemManager.AddItemByPossibility(randomSpace, 0.9f, 0.3f);
            }
            #endregion

            ///飯泉より キャラクターマネージャのinitの前にずらしました
            ui = new DungeonUI(gameManager, gameDevice);

            Vector3 position = new Vector3(
                map.EntryPoint.X * MapDef.TILE_SIZE,
                MapDef.TILE_SIZE / 2,
                map.EntryPoint.Y * MapDef.TILE_SIZE);
            characterManager.Initialize(ui, mapItemManager);
            characterManager.AddPlayer(position, pManager, gameManager);
            //var d = new int[2];
            //d[0] = 3;
            //d[1] = 2;
            ////配列を渡せばその中からランダムで、ID単体を渡せばそれのみをスポーンさせます
            //characterManager.AddSpawner(new Spawner(500, characterManager.GetPlayer().Position, d, 10,1, characterManager));
            //characterManager.AddSpawner(new Spawner(500, characterManager.GetPlayer().Position, 1, 10, 1, characterManager));

            int spawnerAmount =
                stageManager.StageSize() / 3 +             //サイズ補正
                //stageManager.CurrentFloor() / 5 +         //Floor補正(難しいのでコメントアウト)
                stageManager.CurrentDungeonNum() / 3;      //ダンジョンの難易度補正

            GenerateSpawner(spawnerAmount);

            #region カメラ初期化
            angle = 0;
            gameDevice.MainProjector.Initialize(characterManager.GetPlayer().GetPosition);       //カメラを初期化
            #endregion


            background = new FogBackground(gameDevice);
        }