diff options
Diffstat (limited to 'examples/state_machine/main.cpp')
-rw-r--r-- | examples/state_machine/main.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/examples/state_machine/main.cpp b/examples/state_machine/main.cpp index 0b7e191..ffcf8e9 100644 --- a/examples/state_machine/main.cpp +++ b/examples/state_machine/main.cpp @@ -23,11 +23,9 @@ void onLoad() sm.addState("Jump"); sm.addParametert("run"); sm.addParameterb("idle"); - /*sm.addTransitionb("Empty", "Idle", "run", StateMachine::BOOL_IS, true); - sm.addTransitionb("Idle", "Run", "run", StateMachine::BOOL_IS, false); - */ - sm.addTransitiont("Empty", "Idle", "run"); - sm.addTransitiont("Idle", "Run", "run"); + sm.addParameterb("idle2"); + sm.addTransition("Empty", "Idle", StateMachine::Conditions().andt("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; }); @@ -47,9 +45,16 @@ void onLoad() //timer.cancel(hnd); }, NULL); timer.after(5000, [](void*) { + sm.setParameterb("idle", true); sm.setParametert("run"); + timer.cancelAll(); //sm.setParameterb("run", false); }, NULL); + timer.after(8000, [](void*) { + sm.setParameterb("idle2", true); + //sm.setParameterb("run", false); + timer.cancel(); + }, NULL); } void onEvent(Event* e) |