函数的命名
当我们创建新的文件(新函数)时,文件中可同时包含多个函数(option),但其中一个函数的命名必须与文件名相同,如:Striker.h中包含了Striker(即option(Striker))函数。
函数的描述
在BHuman中,函数的描述必须被写于option以内
创建无参函数(可参照LookForward())
option(函数名)
创建带参函数(可参照WalkToTarget())
option(函数名,(形参1类型)形参1名称,(形参2类型)形参2名称,...)
函数的描述
state
BHuman中,创建的函数大多为了实现某个行为,
如扭头、踢球等。例如,扭头又可以分为细致的几个动作:
向左80°->向前看->向右80°->向前...
根据这样特点,我们可以把扭头这个动作分为几个State
initial_state
第一个执行的"state"
target_state
最后一个执行的"state"
aborted_state
action
在把一个动作分为细致的几个动作并建立相应的state后,需要把每个state要求作出的动作函数写在以"action"开头的复合语句中。
transition
一个"state"中需要把条件语句写在以"transition"开头的复合语句中,进行"state"的跳转;
若每个"state"都需要执行相同的条件语句,可以把这些条件语句新建一个"common_transition"的复合语句。
action & transition
在执行action中复合语句同时,transition中复合语句也在执行;
当transition中某个条件满足时,就会跳入此条件语句指定的state。
transition&action的对话
action的执行情况可用以下关键字告知transition进行转换:
option_time 整型数据,表示当前option执行了多长时间;
state_time 整型数据,表示当前state执行了多长时间
!以上二者单位为ms,即1000=1s
action_done bool型数据,默认为false,表示action中最后一个调用的函数语句是否已经执行到target_state;
△ 若不涉及target_state,则无法跳出!
action_absorted bool型数据,与aborted_state对应。
aborted_state应用于当一个state执行的函数的行为受到干扰,则可添加aborted_state提供相应的措施。