首页 > 解决方案 > 处理事件

问题描述

概括

我正在开发一个发生多个事件的游戏。
诸如移动、被击中、吃东西等事件。
目标是能够在其中一个事件出现时执行函数
。一个函数可以执行的事件的三个​​部分,OnStart/During/OnEnd。

例如GetHit
触发 X 函数(由 OnStart 触发)
吃东西会每秒触发 Y 函数(由 during 触发)
AfterUseSkill 会触发 Z 函数(由 OnEnd 触发)

问题是,我只知道如何通过使用委托或观察者模式等方法在事件执行时触发它,例如 OnEat、OnGetHit...等。当涉及到 WhileEating、WhileMoving 等其他阶段时,我不确定如何去做。总的来说,我只需要一种可靠的方法来识别正在运行的事件,它处于哪个阶段(开始/期间/结束),然后我应该能够使用这些信息来确定要触发哪个功能。我唯一想到的是让观察者模式为每个阶段发送消息,但我很犹豫这样做,因为我认为它可能效率低下。

抱歉,如果我的结构有点偏离,这是我的第一次问题。任何形式的帮助,即使只是指向正确的方向也会受到赞赏(特别是因为我是事件处理的新手)。谢谢!

标签: c#eventsevent-handling

解决方案


推荐阅读