我正在尝试开发一种涉及检测按键和组合的格斗游戏。
然而,事情比我想象的要复杂,以下是一些要点:
1)当用户快速按两次A时,该角色应该运行。
2)当用户按某些键时,说A + L + D,该角色应该被施放。
3)当角色的演员结束时,如果按下箭头键,角色应向左或向右移动,否则应该待命。
4)当角色跳跃时,它无法移动(意味着左/右箭头按键被忽略),但可以攻击。
5)需要较短间隔时间和/或订单的组合键。
依旧......
我考虑了几种方法,但无法完美解决问题。
事情变得非常重要。
有人能为我提供一些好的算法或方法来解决这个问题吗?
答案 0 :(得分:0)
您需要Finite State Machine来表示和建立您的组合状态。您的输入/按键系统或相关层需要支持以下功能:
n
次关键操作的可靠缓冲区。对于每个连续的组合,您的有限状态机将具有中间状态,错误的输入取消并重置状态。许多FSM状态变化条件将基于定时器和输入的组合。但是,FSM通常会对动画和跟踪状态/移动有很大帮助,而不仅仅是输入。