当实体的状态未充分利用enter(),execute()和exit()时,是否存在设计缺陷?


9

我通过示例跟踪了Mat Buckland的《编程游戏AI》,发现我并不总是在实体状态上使用enter(),execute()和exit()。例如,在RPG中,武器可能具有装备状态,而我可以在该状态下使用enter()和exit()向玩家的能力修改器添加或减去,但实际上并不需要execute( )。这是我引擎的设计缺陷,还是这种方法的缺点?

Answers:


8

那些书还没读完,听起来像是状态机的正常入口。要了解电话,让我们看一下它们的作用。

enter() -激活状态时执行。

execute() - 激活状态时执行。

exit() -在停用状态时执行。

这些适合任何一种状态机。一些机器只需要“执行”调用,其他机器则需要“输入”和“退出”,而其他机器则需要全部三个。

示例1:机枪扳机。

  • 执行:以设定的速率发射子弹。

示例2:力桥

  • 输入:使桥出现
  • 出口:使桥消失

示例3:个人动力装甲。

  • 输入:给予玩家额外的保护
  • 执行:耗尽电池
  • 退出:删除额外的保护

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.