コード例 #1
0
        private void UpdateState(GameTime gameTime)
        {
            if (_state != null)
            {
                IPlayerState newState = _state.Update(this, gameTime);

                if (newState != null && _state != newState)
                {
                    _state.Exit(this);
                    _state = newState;
                    _state.Enter(this);
                }
            }
        }
コード例 #2
0
    public void ChangeState(IPlayerState newState)
    {
        if (currentState != null)
        {
            currentState.Exit();
        }

        currentState = newState;
        currentState.Enter();
    }
コード例 #3
0
ファイル: PlayerFSMMgr.cs プロジェクト: woym2008/PerfectJam
        public void SetState(IPlayerState state)
        {
            if (m_state != null)
            {
                m_state.Exit();
            }

            m_state = state;

            m_state.Enter();
        }
コード例 #4
0
    public void ChangeToState(IPlayerState state)
    {
        if (m_CurrentState != null)
        {
            m_CurrentState.Exit();
        }

        m_CurrentState = state;
        if (m_CurrentState == null)
        {
            return;
        }

        m_CurrentState.Enter(this);
    }
コード例 #5
0
ファイル: Player.cs プロジェクト: lhoffl/rewind
    public void EnterState(IPlayerState state)
    {
        if (_currentState != null)
        {
            _currentState.Exit();
        }

        if (!(state is RewindingPlayerState))
        {
            StateStack.Push(state);
        }

        _previousState = _currentState;
        _currentState  = state;
        _currentState.Enter(this);
    }
コード例 #6
0
 /// <summary>
 /// 狀態改變
 /// </summary>
 /// <param name="nextState">下一個狀態</param>
 public void ChangeState(IPlayerState nextState)
 {
     StateHandle.Exit();
     StateHandle = nextState;
     StateHandle.Enter();
 }