0

我正在尝试开发一款涉及检测按键和组合的格斗游戏。

但是,事情比我想象的要复杂,以下是一些要点:

1)当用户快速按 A 两次时,角色应该运行。

2)当用户按下一些键时,比如A + L + D,角色应该被施放。

3)角色施法结束后,如果按方向键,角色应该向左或向右移动,否则为待机。

4)角色在跳跃时不能移动(即忽略左右方向键按下),但可以攻击。

5)需要短间隔时间和/或顺序的组合键。

等等...

我想了几种方法,但都不能完美解决问题。

事情完全是一团糟。

谁能给我一些好的算法或方法来处理这样的问题?

4

1 回答 1

0

您需要一个有限状态机来表示和建立您的组合状态。您的输入/按键系统或相关层将需要支持以下功能:

  • 缓冲输入(因此您的输入事件被排队,并且不只是在这一帧立即采样,这在缺少输入的成本非常明显的格斗游戏中尤其重要)
  • 计算多次按下
  • 自上次按下以来的时间(全局和本地相同键),以及按住的时间。
  • 也许保留最后n关键操作的可靠缓冲。

您的有限状态机对于组合的每个连续都有中间状态,错误的输入取消和重置状态。许多 FSM 状态更改条件将基于计时器和输入的组合。然而,FSM 将极大地帮助动画和跟踪状态/运动,而不仅仅是输入。

于 2012-08-10T03:08:50.910 回答