对于爱好我正在做一个游戏。游戏中有一个追逐人类的怪物(吃豆子般的)。当吃豆子卡住时,可以吃人或做些动作;应该提出一个事件。这是因为我的程序变得不合时宜,因为所有的对象都必须知道彼此之间什么内聚力不好。在这种情况下,我是否需要制作自定义事件?
有一个类似于对象的控件(称为游戏),它应该响应事件;人为移动,怪物移动,人为食用,怪物卡住,并最终让视图知道发生了一些事情,因此重新绘制。还有一点重要,即观点对演员的按键作出反应,并且这些事件应以某种方式(也与事件相关)到达人类。
有人可以帮我解决这个问题吗?我在网上搜索了同样的问题,但没有遇到类似的问题。
在MVC中:控制器是否知道视图?如果是这样的话:整个程序是从控制器开始还是从视图开始? (是什么让谁)
感谢关于MVC部分:-)这帮助了我,因为我认识的一些人相信,控制器只会让模型保持在一起,并且不知道视图。 我在想像一个自定义事件,类GameEvent扩展了EventObject。用描述事件的ID(使用像GameEvent.EntityMoved,HumanEaten,SnapperStuck等常量)。 我唯一需要知道的是;如何捕捉像箭头这样的关键事件的视图让人知道他必须向上移动? – zondvloed 2011-12-21 20:43:31
你的想法是创建一个类GameEvent,并使用常量(如ENtityMoved等)引用每个事件是很好的。回到你的问题,你的观点如何让人知道可以通过这种方式实现。 ArrowUpEvent ---> Controller监听事件并发送到查看---->查看生成另一个事件--->人类对象从视图中接收事件。 – 2011-12-21 21:07:19
所以你建议我应该有另一个名为MoveHuman的自定义事件(或者在GameEvent中使其成为一个常量)并让人类听它?但是,并不是每个人都依赖于GameEvent类(例如,这是否会使凝聚力好)?感谢您的帮助和时间在这个问题btw! – zondvloed 2011-12-21 21:15:25