卡在状态机设计上

时间:2018-08-16 21:42:47

标签: game-engine state-machine

我正在为自己制作的游戏设计成就系统,并且为了能够实现更复杂的成就,我正在实现一种可用于成就的基于状态的自定义系统。

当前,成就感的处理方式是在我的整个游戏代码中,我发布了一个名为“ metrics”的词,以说明游戏中发生了什么。因此,例如,“ enemyKilled”是我正在使用的一种说法,它只是说一个敌人死于该更新。

因此,状态机的工作方式是每个状态都有一个过渡列表,这些过渡只是状态要注意的特定指标。如果发布了该指标,状态将转换为下一个状态。

我觉得这肯定会提供一些更强大的成就可能性,但是我很难为一个非常基本的成就而对状态机进行概念化。

我要实现的成就是“仅使用这种武器杀死这个老板”。因此,仅允许玩家使用一种特定的武器杀死Boss,这意味着所有伤害必须来自该种武器。

到目前为止,我的状态如下:

  • s0 =开始
    • 与上司的战斗开始时过渡到s1。
  • s1
    • 如果给定boss以外的武器造成的伤害转换为s0。
    • 如果boss战斗结束,则过渡到s2。
  • s2 =结束状态

我遇到问题的状态是s1 ...我可以发布什么命名的指标来检查对老板造成的伤害仅来自此武器?字符串可以包含任何内容,因此我可以使用一个非常复杂的字符串,但这并不理想。

有人对我如何实现此目标或如何改进状态设计提出建议吗?或者,即使您对如何完全实现这些成就有更好的想法?

0 个答案:

没有答案