【问题标题】:How to design my framework of EventTrigger in game with no existing engine?如何在没有现有引擎的游戏中设计我的 EventTrigger 框架?
【发布时间】:2019-10-16 15:52:14
【问题描述】:

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

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

  • 是否应该在要触发的对象中设置触发器?
  • 我应该创建一个触发器管理器吗?
  • 这些触发器有什么作用?

【问题讨论】:

  • 您好,seventeezz,我认为您的问题有点过于宽泛和模糊。我建议你先提出设计理念,然后提出具体问题。
  • 您可能还想通过gamedev.stackexchange.com向stackexchange 游戏开发社区提问

标签: c++ architecture


【解决方案1】:

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

我想你的游戏已经有一个事件管理器,你可以注册到它来接收特定事件发生的通知(可能使用observer design pattern)。

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

  • 过滤器
  • 处理程序

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

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

另外,在过去的某个时候,我在 reddit 上阅读了 that post(参见 cmets),我也觉得这很鼓舞人心,并描述了一种不同的方法。

您可能还想通过gamedev.stackexchange.com 向 stackexchange 游戏开发社区提问

希望这能给你一些想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2010-12-26
    相关资源
    最近更新 更多