Пример #1
0
    /// <summary>
    /// ゲームの状態を管理
    /// </summary>
    /// <param name = "game_state">新しい状態</param>
    void Game_Loop(eGame_State game_state)
    {
        switch (game_state)
        {
        // 拠点を作る
        case eGame_State.Create_Base:
            base_manager.Create_Base();
            Set_Game_State(eGame_State.Player_Turn);
            break;

        // ダンジョンを作る
        case eGame_State.Create_Dungeon:
            var dungeon_manager = Dungeon_Manager.Instance.dungeon_generator;
            var decide_dungeon  = GameObject.Find("Decide_Dungeon").GetComponent <Decide_Dungeon>();
            dungeon_manager.Load_Dungeon(decide_dungeon.dungeon_data.level);
            Set_Game_State(eGame_State.Player_Turn);
            break;

        // プレイヤーターン
        case eGame_State.Player_Turn:
            var player_action = Player_Manager.Instance.player_action;
            player_action.Run_Action();
            break;

        // パートナーの行動
        case eGame_State.Partner_Turn:
            Set_Game_State(eGame_State.Enemy_Trun);
            break;

        // エネミーの行動
        case eGame_State.Enemy_Trun:
            var enemy_action = Enemy_Manager.Instance.enemy_action;
            enemy_action.Action();
            Set_Game_State(eGame_State.Dungeon_Turn);
            break;

        // ダンジョンのターン(敵のスポーンなど)
        case eGame_State.Dungeon_Turn:
            var dungeon_generator = Dungeon_Manager.Instance.dungeon_generator;
            dungeon_generator.Turn_Tick();
            Set_Game_State(eGame_State.Player_Turn);
            break;
        }
    }
Пример #2
0
 /// <summary>
 /// ゲームループの状態を変える。シーン変更時に呼ばれる
 /// </summary>
 /// <param name = "set_state">遷移後の状態</param>
 public void Set_Game_State(eGame_State set_state)
 {
     game_state = set_state;
 }
Пример #3
0
 void Start()
 {
     game_state          = eGame_State.Create_Base;
     base_manager_object = GameObject.Find("Base_Manager");
     base_manager        = base_manager_object.GetComponent <Base_Manager>();
 }