From 75792c15480d3d99b2ba7e79e143e4b569b22611 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 13 Nov 2018 08:27:26 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9lua=20ref?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/state_machine/main.cpp | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'examples/state_machine/main.cpp') diff --git a/examples/state_machine/main.cpp b/examples/state_machine/main.cpp index 7d83d2b..c061a81 100644 --- a/examples/state_machine/main.cpp +++ b/examples/state_machine/main.cpp @@ -14,16 +14,33 @@ using namespace JinEngine::Time; ParticleSystem* p; StateMachine sm; Timer timer; +enum +{ + STATE_EMPTY = 0, + STATE_RUN, + STATE_IDLE, + STATE_SLEEP, + STATE_JUMP +}; + +enum +{ + PARAM_RUN = 1, + PARAM_IDLE = 2, + PARAM_IDLE2 = 3, + PARAM_RUN = 4 +}; + void onLoad() { - sm.addState("Run"); - sm.addState("Idle"); - sm.addState("Sleep"); - sm.addState("Jump"); - sm.addParametert("run"); - sm.addParameterb("idle"); - sm.addParameterb("idle2"); - sm.addTransition("Empty", "Idle", StateMachine::Conditions().andt("run")); + sm.addState(STATE_RUN); + sm.addState(STATE_IDLE); + sm.addState(STATE_SLEEP); + sm.addState(STATE_JUMP); + sm.addParametert(PARAM_RUN); + sm.addParameterb(PARAM_IDLE); + sm.addParameterb(PARAM_IDLE2); + sm.addTransition(STATE_EMPTY, STATE_IDLE, StateMachine::Conditions().andt(PARAM_RUN)); sm.addTransition("Idle", "Run", StateMachine::Conditions().andb("idle", StateMachine::BOOL_IS, true).andb("idle2", StateMachine::BOOL_IS, true)); sm.setEnterListener([](const string& state, void* p) { cout << "Enter: " << state << endl; -- cgit v1.1-26-g67d0