如何在没有现有引擎的情况下在游戏中设计EventTrigger框架?

Seventeezz

我现在正在学习游戏设计,并且从入门开始,SuperMarioBro是我现在要用很少的引擎完成的游戏。我想设计一个触发器,以便当Mario碰到问号时,会出现蘑菇,金币或白花等。因此,在点击它时,触发器被触发,它将调用其回调函数以产生不同的事物以使其更加去耦。

所以我的问题是,我应该如何设计一个完美的Event Trigger框架,我只是对此大体了解。

  • 是否应该在要触发的对象中设置触发?
  • 我应该做触发器管理器吗?
  • 这些触发器怎么办?
雷吉斯

由于问题很笼统,所以我将给您一个天真的想法,让我亲自开始思考。

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

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

  • 过滤器
  • 处理程序

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

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

另外,在过去的某个时候,我阅读有关reddit的文章(请参阅评论),我发现它也很受启发,并描述了另一种方法。

您可能还想在gamedev.stackexchange.com向stackexchange游戏开发者社区提问。

希望这能给您一些想法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有任何框架的情况下在 Maven 中使用 webjars

来自分类Dev

如何在没有现有连接的情况下在 Ubuntu 服务器 18.04 上启用 WiFi

来自分类Dev

Ionic框架:如何在没有最新API版本的情况下在Android平板电脑上运行

来自分类Dev

如何在不丢失数据的情况下在现有安装上创建/ opt分区?

来自分类Dev

如何在不丢失现有数据的情况下在Laravel中迁移架构?

来自分类Dev

如何在没有视图的Android游戏中实现滑动

来自分类Dev

如何在不干扰主要功能的情况下在Python turtle的标签游戏中添加其他功能?

来自分类Dev

如何在没有会话的情况下在CRUD .NET MVC中保持异步上传的文件

来自分类Dev

如何在没有Apple Developer帐户的情况下在xcode 6中创建ipa?

来自分类Dev

如何在没有MapReduce的情况下在HBase中进行分布式更新

来自分类Dev

如何在没有关联的UI元素的情况下在iOS中创建序列

来自分类Dev

如何在没有代码隐藏的情况下在ViewModel中处理WPF路由命令?

来自分类Dev

如何在没有点击事件的情况下在jQuery中设置Analytics Event?

来自分类Dev

我如何在没有GUI的情况下在Thunar中设置标志?

来自分类Dev

如何在没有保留周期的情况下在块内保留强引用

来自分类Dev

如何在没有for循环的情况下在twilio api中发送批量短信

来自分类Dev

如何在没有XML的情况下在SOAP WS中接受JSON

来自分类Dev

我如何在没有依赖的情况下在composer中安装软件包

来自分类Dev

如何在没有警告的情况下在C99中使用ftruncate

来自分类Dev

如何在没有jQuery的情况下在Javascript中添加和删除类

来自分类Dev

如何在没有jQuery的情况下在Javascript中添加和删除类

来自分类Dev

如何在没有控件的情况下在video.js上暂停视频

来自分类Dev

如何在没有web.xml的情况下在Glassfish 4中配置Swagger?

来自分类Dev

如何在没有JSX的情况下在React.js中呈现html实体

来自分类Dev

如何在没有soapaction标头验证的情况下在骆驼中创建cxf端点?

来自分类Dev

如何在没有超时的情况下在Travis CI上安装某些软件?

来自分类Dev

如何在没有容器对象的情况下在每个循环中呈现视图?

来自分类Dev

如何在没有root特权的情况下在Linux中读取HD串行?

来自分类Dev

如何在没有FTP的情况下在Google App Engine上上传/更新Wordpress主题?

Related 相关文章

  1. 1

    如何在没有任何框架的情况下在 Maven 中使用 webjars

  2. 2

    如何在没有现有连接的情况下在 Ubuntu 服务器 18.04 上启用 WiFi

  3. 3

    Ionic框架:如何在没有最新API版本的情况下在Android平板电脑上运行

  4. 4

    如何在不丢失数据的情况下在现有安装上创建/ opt分区?

  5. 5

    如何在不丢失现有数据的情况下在Laravel中迁移架构?

  6. 6

    如何在没有视图的Android游戏中实现滑动

  7. 7

    如何在不干扰主要功能的情况下在Python turtle的标签游戏中添加其他功能?

  8. 8

    如何在没有会话的情况下在CRUD .NET MVC中保持异步上传的文件

  9. 9

    如何在没有Apple Developer帐户的情况下在xcode 6中创建ipa?

  10. 10

    如何在没有MapReduce的情况下在HBase中进行分布式更新

  11. 11

    如何在没有关联的UI元素的情况下在iOS中创建序列

  12. 12

    如何在没有代码隐藏的情况下在ViewModel中处理WPF路由命令?

  13. 13

    如何在没有点击事件的情况下在jQuery中设置Analytics Event?

  14. 14

    我如何在没有GUI的情况下在Thunar中设置标志?

  15. 15

    如何在没有保留周期的情况下在块内保留强引用

  16. 16

    如何在没有for循环的情况下在twilio api中发送批量短信

  17. 17

    如何在没有XML的情况下在SOAP WS中接受JSON

  18. 18

    我如何在没有依赖的情况下在composer中安装软件包

  19. 19

    如何在没有警告的情况下在C99中使用ftruncate

  20. 20

    如何在没有jQuery的情况下在Javascript中添加和删除类

  21. 21

    如何在没有jQuery的情况下在Javascript中添加和删除类

  22. 22

    如何在没有控件的情况下在video.js上暂停视频

  23. 23

    如何在没有web.xml的情况下在Glassfish 4中配置Swagger?

  24. 24

    如何在没有JSX的情况下在React.js中呈现html实体

  25. 25

    如何在没有soapaction标头验证的情况下在骆驼中创建cxf端点?

  26. 26

    如何在没有超时的情况下在Travis CI上安装某些软件?

  27. 27

    如何在没有容器对象的情况下在每个循环中呈现视图?

  28. 28

    如何在没有root特权的情况下在Linux中读取HD串行?

  29. 29

    如何在没有FTP的情况下在Google App Engine上上传/更新Wordpress主题?

热门标签

归档