apache-flex - 关于实体之间灵活游戏通信的建议

标签 apache-flex events communication entities

我目前正在开发一种 Flex 游戏,它是一种 table 上纸牌游戏。考虑使用这个游戏中的实体开发其他游戏,我选择创建与游戏甚至与其他游戏实体分离的实体。因此,我目前正在使用事件在我的游戏实体之间进行通信。

在我的例子中,游戏实体指的是例如玩家手部组件,它可以接收卡片,或通过自定义请求和处理事件将卡片发送到另一个未知组件。例如,一副卡片夹组件也会发生同样的情况。

这种方法一开始似乎是一个很好的设计者,但过了一段时间后,我的游戏 Controller 类有很多事件处理函数,这开始对我不利。

我目前的想法是创建一个游戏事件管理器和我的游戏 Controller ,用于处理事件和清理 Controller 代码。

最后,我不确定上面公开的我的设计决定,所以我想知道你们这些人应该为这种游戏指定哪种通信设计。

我希望这个问题的答案也能帮助其他人。 提前致谢。

最佳答案

你能把它分解成几个 Controller 类吗?在选项卡式应用程序中,我为每个选项卡使用了一个单独的 Controller 。将您的应用程序分解成合理的部分不会那么简单,但很有可能。

一个建议可能是:

  • MainController - 处理游戏的“外壳”,例如应用程序启动、菜单、启动画面等...

  • GameController - 处理状态变化和基于用户的事件,例如轮流、检查获胜条件、更新分数等...

  • EntityController - 游戏实体(纸牌、牌组和手牌?)之间的通信。

关于您的游戏的信息如此之少,我很难做出太多判断,但我希望您明白这一点。

此外,如果您想减少样板事件处理代码,我支持使用框架的想法。我听说过关于 robotlegs 的好消息,并且亲自在几个项目中使用过 Swiz。 Swiz 有很棒的、不引人注目的事件调解 swizframework.org .

关于apache-flex - 关于实体之间灵活游戏通信的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196884/

相关文章:

actionscript-3 - 从Array()中间删除一项的最快方法

c# - 在谈论事件处理程序时,关键字 this 在 C# 中意味着什么?

c++ - 实现用于许可管理的服务器

apache-flex - Flex TextArea - 如何突出显示光标下的行/行?

actionscript-3 - Flex3 中的 TLS 支持

apache-flex - Flex 4 Spark BorderContainer - 为特定边绘制边框?

所选类上的 Jquery 绑定(bind)事件

javascript - 浏览器如何知道 e(或 goldfish)指的是事件对象?

c++ - 如何在 gtk+ c 中的回调之间进行通信

c++ - 实现通信超时