如何设计一个系统来支持输入动作的层次结构,动作可以被某些动作中断,而不是其他动作等。
假设玩家正在携带一个箱子。玩家可以通过按键[E]将箱子扔掉。玩家将箱子运到门口。玩家按键[E]时,门应打开,箱子不应掉落。
在这种情况下,我可以简单地编码:如果射线检测击中一个<门>,则打开门;否则,如果玩家手中有箱子,射线检测不击中一个<门>,则将箱子扔掉。
这种解决方案适用于这种情况,但如何设计一个系统来支持这种动作输入的层次结构呢?我可以使用一个非常长的(非常非常长的)if-else语句列表来实现,但这并不是可扩展的。
由于只有有限的键盘输入,且有时更喜欢使用少量的键盘输入,有很多情况下按键可以执行多个动作。
显然,动作有条件(如果看门,按键打开门。如果看箱子,按键捡起箱子。如果持有箱子,不看门,按键扔掉箱子),但是如上所述,这将导致一个非常长的if-else语句列表。
我非常感谢如果有人能指点我正确的方向,提供一些例子,其中一个按键可以执行多个动作,展示一些代码等。
感谢。
评论 (0)