Ejemplo n.º 1
0
        /// <summary>
        /// Playerとアイテムのあたり判定
        /// </summary>
        /// <param name="chara">Player</param>
        /// <param name="ui">UI表示用()Debug</param>
        public void ItemCollision(CharacterBase chara, DungeonUI ui)
        {
            int           index = 0;
            DungeonHintUI hint  = ui.HintUI;

            hint.Switch(false);                     //UIを非表示

            items.ForEach(i =>
            {
                if (chara.Collision.IsCollision(i.Collisiton))
                {
                    string itemName = i.GetItem().GetItemName();
                    hint.Switch(true);                       //当たっていれば表示
                    hint.SetMessage("拾う:Space " + itemName); //表示するメッセージ
                    bool result = false;
                    if (hint.IsPush(Keys.Space))             //拾ったらもらう処理
                    {
                        result = GetItem(index, ui);
                    }
                    if (result)                     //道具欄に追加成功したらメッセージをOFF
                    {
                        hint.Switch(false);
                    }
                    return;
                }
                index++;
            });
        }
 public void Initialize(DungeonUI ui, MapItemManager mapItemManager)
 {
     characters.Clear();
     spawners.Clear();
     hitBoxs.Clear();
     this.ui             = ui;
     this.mapItemManager = mapItemManager;
 }
Ejemplo n.º 3
0
        public void Initialize(SceneType scene)
        {
            endFlag   = false;
            nextScene = SceneType.LoadTown;

            if (scene == SceneType.Pause)
            {
                return;
            }

            stageManager = gameManager.StageManager;
            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());
            map.SwitchDrawExit(false);
            #endregion

            #region MapItemの初期化処理
            mapItemManager = new MapItemManager(gameManager, gameDevice);
            mapItemManager.Initialize();
            #endregion

            Vector3 position = new Vector3(
                map.EntryPoint.X * MapDef.TILE_SIZE,
                MapDef.TILE_SIZE / 2,
                map.EntryPoint.Y * MapDef.TILE_SIZE);

            pManager = new ParticleManager(gameDevice);
            pManager.Initialize();

            characterManager = new CharacterManager(gameDevice, gameManager);

            ui = new DungeonUI(gameManager, gameDevice);

            characterManager.Initialize(ui, mapItemManager);
            characterManager.AddPlayer(position, pManager, gameManager);
            //characterManager.AddCharacter(characterManager.Enemys()[4].Clone(bossPosition));

            GeneratBoss();

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

            background = new FogBackground(gameDevice);
        }
Ejemplo n.º 4
0
        private void generateDungeon()
        {
            dungeonModel.generateDungeon();

            dungeonView = DungeonFactory.makeDungeonView(dungeonCont.transform);
            dungeonView.generateDungeon(dungeonModel);

            dungeonCover = Instantiate(Resources.Load("dungeon/ui/cover", typeof(GameObject))) as GameObject;
            dungeonCover.centerScale(uiCont.transform);

            GameObject dungeonUIObj = GameObject.Instantiate(Resources.Load("dungeon/ui/dungeonUI", typeof(GameObject))) as GameObject;

            dungeonUIObj.centerScale(uiCont.transform);
            dungeonUI = dungeonUIObj.GetComponent <DungeonUI>();
            dungeonUI.updateUI(dungeonModel.currentRoom);
        }
Ejemplo n.º 5
0
        public void ShutDown()
        {
            if (nextScene == SceneType.Pause)       //次のシーンがPauseだったら以下のものShutdownしない
            {
                return;
            }

            map.Clear();                            //マップ解放
            map = null;
            gameManager.ReleaseMap();

            mapItemManager.Initialize();            //Item解放
            mapItemManager = null;

            gameManager.EnemySetting.Clear();       //SpawnSettingを削除

            ui = null;
        }
Ejemplo n.º 6
0
        public Player(Vector3 position, PlayerStatus status, GameDevice gameDevice, CharacterManager characterManager, ParticleManager pManager, GameManager gameManager, DungeonUI ui)
            : base(new CollisionSphere(position, 5.0f), "player", characterManager, "プレイヤー", "White")
        {
            tag = "Player";

            this.gameDevice  = gameDevice;
            input            = gameDevice.InputState;
            projector        = gameDevice.MainProjector;
            this.gameManager = gameManager;
            this.pManager    = pManager;
            this.status      = status;
            this.ui          = ui;
            aiManager        = new AiManager_Player(gameDevice.InputState, status);
            aiManager.Initialize(this);
            motion = new Motion();
            rand   = new Random();
            for (int i = 0; i < 6; i++)
            {
                motion.Add(i, new Rectangle(i * 64, 0, 64, 64));
            }
            motion.Initialize(new Range(0, 5), new Timer(0.1f));
        }
Ejemplo n.º 7
0
        public void ShutDown()
        {
            if (nextScene == SceneType.Pause)
            {
                return;
            }

            map.Clear();                            //マップ解放
            map = null;
            gameManager.ReleaseMap();

            mapItemManager.Initialize();            //Item解放
            mapItemManager = null;

            pManager.Clear();
            pManager         = null;
            characterManager = null;

            gameManager.EnemySetting.Clear();

            ui = null;

            stageManager.ReleaseBossBGM();
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Itemをもらう処理
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        private bool GetItem(int index, DungeonUI ui)
        {
            if (!playerItem.AddTempItem(items[index].GetItem()))
            {
                ui.LogUI.AddLog("カバンのアイテムがいっぱい", Color.Red);                       //Logに追加
                return(false);
            }

            Item   item  = items[index].GetItem();
            Color  color = Color.Lerp(Color.White, Color.Gold, item.GetItemRare() / 8.0f);      //色調整
            string name  = item.GetItemName();

            if (item is WeaponItem)
            {
                name += " + " + ((WeaponItem)item).GetReinforcement();
            }
            if (item is ProtectionItem)
            {
                name += " + " + ((ProtectionItem)item).GetReinforcement();
            }
            ui.LogUI.AddLog(item.GetItemName() + " を取得した", color);                           //Logに追加
            items.RemoveAt(index);
            return(true);
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
    public void showDungeon(Dungeon dungeon)
    {
        DungeonUI.ReRender(dungeon);

        G_DungeonUI.SetActive(true);
    }
Ejemplo n.º 11
0
 public void MoveRecover(DungeonUI ui)
 {
     closeIn = false;
     closing = true;
     m_Camera.transform.DOMove(m_CameraOffset, closingTime).onComplete += () => { active = true; closing = false; m_Camera.fieldOfView = viewField; ui.state = DungeonUIState.Idle; speed = Vector3.zero; };
 }