Ejemplo n.º 1
0
    private void InitFiniteStateMachine()
    {
        // Init all states
        MainMenuState mainMenu = new MainMenuState(this);

        mainMenu.AddTransition(StateTransition.PressStart, StateID.LevelSelect);

        LevelSelectState levelSelect = new LevelSelectState(this);

        levelSelect.AddTransition(StateTransition.ViewCard, StateID.CardView);
        levelSelect.AddTransition(StateTransition.ChoseLevel, StateID.GameScene);
        levelSelect.AddTransition(StateTransition.ViewOption, StateID.OptionView);
        levelSelect.AddTransition(StateTransition.ViewPay, StateID.PayView);

        CardViewState cardView = new CardViewState(this);

        cardView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        GameSceneState gameScene = new GameSceneState(this);

        gameScene.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        OptionViewState optionView = new OptionViewState(this);

        optionView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        PayViewState payView = new PayViewState(this);

        payView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        // Init finite state machine
        _fsm = new FiniteStateMachine();
        _fsm.AddFiniteState(mainMenu);
        _fsm.AddFiniteState(levelSelect);
        _fsm.AddFiniteState(cardView);
        _fsm.AddFiniteState(gameScene);
        _fsm.AddFiniteState(optionView);
        _fsm.AddFiniteState(payView);
    }