我目前正在开发一种 Flex 游戏,它是一种 table 上纸牌游戏。考虑使用这个游戏中的实体开发其他游戏,我选择创建与游戏甚至与其他游戏实体分离的实体。因此,我目前正在使用事件在我的游戏实体之间进行通信。
在我的例子中,游戏实体指的是例如玩家手部组件,它可以接收卡片,或通过自定义请求和处理事件将卡片发送到另一个未知组件。例如,一副卡片夹组件也会发生同样的情况。
这种方法一开始似乎是一个很好的设计者,但过了一段时间后,我的游戏 Controller 类有很多事件处理函数,这开始对我不利。
我目前的想法是创建一个游戏事件管理器和我的游戏 Controller ,用于处理事件和清理 Controller 代码。
最后,我不确定上面公开的我的设计决定,所以我想知道你们这些人应该为这种游戏指定哪种通信设计。
我希望这个问题的答案也能帮助其他人。 提前致谢。
最佳答案
你能把它分解成几个 Controller 类吗?在选项卡式应用程序中,我为每个选项卡使用了一个单独的 Controller 。将您的应用程序分解成合理的部分不会那么简单,但很有可能。
一个建议可能是:
MainController - 处理游戏的“外壳”,例如应用程序启动、菜单、启动画面等...
GameController - 处理状态变化和基于用户的事件,例如轮流、检查获胜条件、更新分数等...
EntityController - 游戏实体(纸牌、牌组和手牌?)之间的通信。
关于您的游戏的信息如此之少,我很难做出太多判断,但我希望您明白这一点。
此外,如果您想减少样板事件处理代码,我支持使用框架的想法。我听说过关于 robotlegs 的好消息,并且亲自在几个项目中使用过 Swiz。 Swiz 有很棒的、不引人注目的事件调解 swizframework.org .
关于apache-flex - 关于实体之间灵活游戏通信的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196884/