コード例 #1
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
 private FSMState GetGoalState(FSMState.FSMStates goalState) {
     foreach (FSMState state in states) {
         if (state.Type == goalState)
             return state;
     }
     return null;
 }
コード例 #2
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
 public void ChangeState(AI_RTS_MonoGame.AI.FSM.FSMState.FSMStates state, bool reenter = false) {
     if (reenter || state != currentState.Type)
     {
         currentState.Exit();
         currentState = GetGoalState(state);
         currentState.Enter();
     }
 }
コード例 #3
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
 public void Reset() {
     if (currentState != null)
         currentState.Exit();
     currentState = defaultState;
     foreach (FSMState state in states)
         state.Init();
     if (currentState != null)
         currentState.Enter();
 }
コード例 #4
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
        public void Update(GameTime gameTime) {
            if (currentState == null)
                currentState = defaultState;
            if (currentState == null)
                return;

            FSMState.FSMStates goalType = currentState.CheckTransitions();
            ChangeState(goalType);
            currentState.Update(gameTime);
        }
コード例 #5
0
 public void SetDefaultState(FSMState state)
 {
     defaultState = state;
 }
コード例 #6
0
 public void AddState(FSMState state)
 {
     states.Add(state);
 }
コード例 #7
0
 public UnitFSMState(FSMState.FSMStates type, UnitController controller, GameplayManager gm)
     : base(type)
 {
     this.controller = controller;
     this.gm = gm;
 }
コード例 #8
0
 public UnitFSMState(FSMState.FSMStates type, UnitController controller) :base (type){
     this.controller = controller;
 }
コード例 #9
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
 public void SetDefaultState(FSMState state) {
     defaultState = state;
 }
コード例 #10
0
ファイル: FSM.cs プロジェクト: alexdbaldwin/AI_RTS_MonoGame
 public void AddState(FSMState state) {
     states.Add(state);
 }