如何在没有现有引擎的情况下在游戏中设计我的事件触发器框架?
How to design my framework of EventTrigger in game with no existing engine?
我现在正在学习游戏设计,首先,SuperMarioBro是我现在要用很少的引擎完成的游戏。我想设计一个触发器,以便当马里奥点击问号时,蘑菇或金币或白花等会出现。所以当击中它时,触发器被触发,它会调用它的回调函数来生成不同的东西,使其更加解耦。
所以我的问题是,我怎样才能设计出一个完美的事件触发器框架,我只是大致了解它。
- 我应该在要触发的对象中设置触发器吗?
- 我应该做一个触发器管理器吗?
- 这些触发器又是怎么回事呢?
由于这个问题很笼统,我将给你一个天真的想法,我个人将如何开始思考它。
我想您的游戏已经有一个事件管理器,您可以注册该管理器以接收发生的特定事件的通知(可能正在使用观察器设计模式(。
然后,我会将一个 TriggerManager 注册为您可能想要触发特定操作的任何事件的接收器。对于每种类型的观察到的事件,触发器管理器将包含两件事:
- 一个过滤器
- 一个处理程序
过滤器将用于确定事件是否符合所需条件(例如,在范围区域内移动的实体(。
如果事件通过过滤器,则执行处理程序以响应该事件:发送到另一个实体或系统的动作/命令/事件。
此外,在过去的某个时候,我在reddit上读到了那篇帖子(见评论(,我也发现这篇文章很有启发性,并描述了一种不同的方法。
您可能还想在 gamedev.stackexchange.com 上向 stackexchange 游戏开发社区提出您的问题
希望这能给你一些想法。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 在wxWidgets的事件中包含我自己的数据的最佳方法是什么?
- 如何在没有现有引擎的情况下在游戏中设计我的事件触发器框架?
- SFML c ++ 当包含文件内游戏中发生事件时,如何使用铃声函数为我的游戏创建声音类?
- 当我的结构中的任何变量发生更改时触发的事件的任何方法
- 为什么事件队列未处理我的QT信号
- 在我的应用程序中侦听 iexplorer 的关闭事件
- 为什么我的Windows控制台关闭事件处理程序超时
- 我的Qt eventFilter()不会像它应该的那样停止事件
- MFC-在dll卸载时,扫描我的代码,任何剩余的计时器,事件,线程等
- 如何使我的C++程序永远等待传感器事件而不终止
- 为什么我的 CStatic 派生类没有接收 OnMouseLeave 事件,但可以接收 OnMouseMove
- 我的libevent计时器在另一个事件发生时立即停止.这正常吗?
- Qt事件后,长例程冻结了我的应用程序一段时间
- 使用Windows和c++的chrono为每个人安排一个1毫秒的事件——我是不是要求太多了?
- 我可以使用boost.statecharts自定义对不同正交区域中多个状态的事件做出反应吗?
- 使用 Windows 消息循环接收我正在编写的库中的事件
- Libevent aerospike 客户端::是否可以在我的事件处理机制中注册 Aerospike FD
- 为什么我的子窗口对鼠标事件没有响应?