2010-11-16 36 views
3

我目前正在开发一款Flex游戏,这是一种桌面和纸牌游戏。考虑使用这个实体开发其他游戏,我选择创建与游戏分离的实体,甚至是其他游戏实体。因此,我目前正在使用事件进行我的游戏实体之间的通信。关于实体间弹性游戏通信的建议

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

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

我目前的想法是创建一个游戏事件管理器,加上我的游戏控制器来处理事件和清理控制器代码。

最后,我不确定我的设计决定是否暴露在上面,所以我想知道关于你的人,哪种通信设计将被指示用于这种游戏。

我希望这个问题的答案也可以帮助别人介意。 在此先感谢。

+0

控制器中的大量代码不一定是件坏事。毕竟它在模型和视图之间起中介作用,所以这就是很多应用程序逻辑最终会出现的地方。如果你正在寻找一些东西来帮助你构建一些东西,请查看http://www.robotlegs.org/框架。 – martineno 2010-11-21 02:56:17

回答

0

你能把它分成几个控制器类吗?在选项卡式应用程序中,我为每个选项卡使用了一个特殊控制器。将你的应用程序分解成合理的部分将不会像切割和干燥,但很可能。

一个suggesetion可能是:

  • MainController - 处理的游戏,如应用程序启动,菜单,闪屏等的 '外壳' ......

  • GameController - 处理状态更改和基于用户的事件,如轮流,检查赢得条件,更新分数等...

  • EntityController - 您的游戏实体(卡片,套牌和手?)之间的通信。

这是我很难跟你的游戏这样的小信息做出太多的判断,但我希望你的想法。另外,如果你想减少样板事件处理代码,我第二个使用框架的想法。我听说过关于robotlegs的好消息,并亲自在一些项目中使用了Swiz。 Swiz有很好的,不引人注意的事件调解swizframework.org