コード例 #1
0
ファイル: FiniteStateMachine.cs プロジェクト: zpconn/Gas
        public void Render( float moveFactor )
        {
            if ( states.Count == 0 )
                return;

            if ( currentState == null )
            {
                currentState = defaultState;
                currentState.Enter();
            }
            if ( currentState == null )
                return;

            currentState.Render( moveFactor );
        }
コード例 #2
0
ファイル: FiniteStateMachine.cs プロジェクト: zpconn/Gas
        public void Update( float moveFactor )
        {
            if ( states.Count == 0 )
                return;

            if ( currentState == null )
            {
                currentState = defaultState;
                currentState.Enter();
            }
            if ( currentState == null )
                return;

            int oldStateID = currentState.Type;
            goalID = currentState.CheckTransitions( moveFactor );

            if ( goalID != oldStateID )
            {
                if ( TransitionState( goalID ) )
                {
                    currentState.Exit();
                    currentState = goalState;
                    currentState.Enter();
                }
            }

            currentState.Update( moveFactor );
        }