gpt4 book ai didi

java - 在这种情况下我需要制作自定义事件吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:39 26 4
gpt4 key购买 nike

出于爱好,我正在制作一款游戏。游戏中有一个怪物追逐人类(类似吃 bean 人)。当吃 bean 人被卡住时,可以吃掉人类或做一些 Action ;应该引发一个事件。这是因为我的程序变得非 oop,因为所有对象都必须彼此了解,这对内聚性没有好处。

有一个类似控件的对象(称为 Game)应该响应事件;人类移动,怪物移动,人类被吃掉,怪物被卡住,最终让 View 知道发生了一些事情,所以它重新绘制。还有一点是什么,即 View 响应 Actor 的按键,并且这些事件应该以某种方式到达人类(也通过事件)。

  1. 有人可以帮助我如何最好地解决这个问题吗?我在互联网上搜索过类似的问题,但没有遇到。

  2. 在 MVC 中: Controller 知道 View 吗?如果是这样:整个程序是从 Controller 开始还是从 View 开始? (什么造就了谁)

最佳答案

基本上,事件处理机制只是一种生产者-消费者模式,假设您正在生成一些事件(一个操作),并且有一组监听器需要通知您的操作。

您是否要使用Java内置事件处理取决于您已经编写了多少代码,如果重构代码以使用Java事件处理需要大量精力,并且您只有有限的事件集,那么您可以编写自己的消息传递系统。但显然,应该优先使用 Java 事件处理机制,因为它负责通知所有为该事件注册的监听器,您无需担心通知每个监听器,并且稍后如果出现问题,它将帮助您进行调试。我希望它能回答您的第一个问题

简而言之,您可以编写自己的事件,例如 HumanMovedEvent、MonsterMovedEvent 等。

回到你的第二个问题,是的,在 MVC 中, Controller 知道它需要触发任何特定操作的所有 View 。 Controller 可以为任何特定操作选择任何特定 View ,假设您执行某个操作 A,则可以调用 View V。

是的,您的程序首先从 UI 向 Controller 发送请求。然后, Controller 选择需要为该特定操作呈现的 View 。

我希望我说清楚了:)

关于java - 在这种情况下我需要制作自定义事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8595898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com