aboutsummaryrefslogtreecommitdiff
path: root/examples/state_machine/main.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-13 08:27:26 +0800
committerchai <chaifix@163.com>2018-11-13 08:27:26 +0800
commit75792c15480d3d99b2ba7e79e143e4b569b22611 (patch)
tree61e3abc45326c67d348e08400da11f60dff18fa3 /examples/state_machine/main.cpp
parentc7e59fb376453e5abad8c862b52eb0f4c7ba829b (diff)
*修改lua ref
Diffstat (limited to 'examples/state_machine/main.cpp')
-rw-r--r--examples/state_machine/main.cpp33
1 files changed, 25 insertions, 8 deletions
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;