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

目前,处理成就的方式是在我的游戏代码中,我发布了名为“指标”来说明游戏中发生了什么 . 因此,例如,“敌人杀死”是我用来表示敌人死于更新的一个 .

因此,状态机的工作方式是每个状态都有一个转换列表,这些转换只是状态所关注的特定指标 . 如果该度量标准已过帐,则状态将转换为下一个状态 .

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

我想要实现的成就是“只使用这种武器杀死这个老板 . ”所以玩家只能使用一种特定的武器杀死老板,这意味着所有的伤害都必须来自那一种武器 .

到目前为止,我的州如下:

  • s0 =开始

  • 与老板的战斗开始时转换到s1 .

  • s1

  • 如果对老板进行了除给定武器以外的武器的伤害,则转换为s0 .

  • 如果boss战结束,则转换为s2 .

  • s2 =结束状态

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

有没有人有关于如何实现这一点的建议,或者我如何改进我的州设计?或者即使您对如何完全实现成就有更好的想法?