如何在没有现有引擎的情况下在游戏中设计我的事件触发器框架?

How to design my framework of EventTrigger in game with no existing engine?

本文关键字:我的 事件 触发器 框架 情况下 引擎 游戏      更新时间:2023-10-16

我现在正在学习游戏设计,首先,SuperMarioBro是我现在要用很少的引擎完成的游戏。我想设计一个触发器,以便当马里奥点击问号时,蘑菇或金币或白花等会出现。所以当击中它时,触发器被触发,它会调用它的回调函数来生成不同的东西,使其更加解耦。

所以我的问题是,我怎样才能设计出一个完美的事件触发器框架,我只是大致了解它。

  • 我应该在要触发的对象中设置触发器吗?
  • 我应该做一个触发器管理器吗?
  • 这些触发器又是怎么回事呢?

由于这个问题很笼统,我将给你一个天真的想法,个人将如何开始思考它。

我想您的游戏已经有一个事件管理器,您可以注册该管理器以接收发生的特定事件的通知(可能正在使用观察器设计模式(。

然后,我会将一个 TriggerManager 注册为您可能想要触发特定操作的任何事件的接收器。对于每种类型的观察到的事件,触发器管理器将包含两件事:

  • 一个过滤器
  • 一个处理程序

过滤器将用于确定事件是否符合所需条件(例如,在范围区域内移动的实体(。

如果事件通过过滤器,则执行处理程序以响应该事件:发送到另一个实体或系统的动作/命令/事件。

此外,在过去的某个时候,我在reddit上读到了那篇帖子(见评论(,我也发现这篇文章很有启发性,并描述了一种不同的方法。

您可能还想在 gamedev.stackexchange.com 上向 stackexchange 游戏开发社区提出您的问题

希望这能给你一些想法。

相关文章: