一个基本治疗者状态机¶
下一步是定义机器人实际行为。为了让示例代码简单,假设你在实现自动治疗者。这个治疗者有两种治疗方式:玩家生命值低于或等于 50% 时使用强治疗,生命值在 51% 到 70% 之间时使用弱治疗。
表示这个行为的状态机需要两个状态,一个用于强治疗,一个用于弱治疗。首先,你需要把状态机定义为包含两个 StateDefinition 对象的向量:
这段代码创建一个名为 stateMachine 的状态机,并用两个空的 StateDefinition 对象初始化它。接下来,你为这些状态定义定义 condition() 和 reach() 函数。强治疗状态最重要,因为它防止角色死亡,所以它应该在向量中排第一,如清单 11-1 所示。