大家好,我正在使用 Godot 开发一款打击游戏,并碰到了一个关于输入缓冲系统设计的问题。
我定义了两个动作:
- 普通攻击,按序列[[LIGHT_PUNCH]],优先级为 1
- 组合,按序列[[LIGHT_PUNCH, LIGHT_PUNCH, HEAVY_PUNCH]],优先级为 3
问题是,玩家按下[LIGHT_PUNCH]时,缓冲器立即匹配普通攻击,消耗缓冲器并清除它,而组合动作却无法匹配,所需的输入已经消失了。
我在阅读这篇关于打击游戏输入缓冲的文章 中提到优先级、时间窗口等概念,但是并没有深入讨论这种特定情况。
我目前的解决方案是延迟将较低优先级动作执行的实施,而不是在匹配时立即消耗和触发动作,匹配器会等待看一个更高优先级分享相同前缀的动作是否仍然可以完成在其时间窗口内。
这会在没有组合动作时带来稍微的延迟,因为必须在窗口过期之前才能触发普通攻击。
我的问题:
-
这是标准打击游戏方法么,还是有更简单的解决方案么?
-
应该把单键普通攻击放到输入缓冲系统中,还是把它们单独处理在它之外?
感谢任何您的建议或提示。
评论 (0)