예제 #1
0
파일: test_fsm3.py 프로젝트: lite/MyTestBox
#!/bin/python
# coding: utf-8

from fsm import State, Transition, FSM

import time, threading  
def wait_input(fsm):  
    cmds = {"i":"Idle", "w":"Walk", "r":"Run", "a":"Attach"};
    while fsm.is_active():
        c = raw_input("[iwra]: ")
        if c in cmds.keys():
            fsm.set_state(cmds[c])
    
if __name__ == "__main__":
    s_idle = State("Idle")
    s_walk = State("Walk")
    s_run = State("Run")
    s_attack = State("Attack")
    
    fsm = FSM()
    fsm.start(s_idle)

    threading.Thread(target = wait_input, args=(fsm,)).start()  
    
    for i in xrange(10):
        fsm.update()
        time.sleep(1)

    fsm.stop()