gpt4 book ai didi

java - 关于 java 游戏的 MVC 框架的快速问题

转载 作者:行者123 更新时间:2023-12-01 16:04:37 26 4
gpt4 key购买 nike

我有一个关于在用 java 编写的二十一点游戏中使用 MVC 框架的问题。据我了解,我的模型将是一个存储游戏状态的类,更具体地说,存储每个玩家的手牌。在模型类中,我将有一个监听器数组,每次游戏状态发生变化(即玩家绘制了一张新牌)时,这些监听器都会收到通知。

这些监听器将是我的查看器,它是处理游戏显示的类。这个类将实现 ActionListener 接口(interface),并且每次模型更改时,它都会调用/“通知”我的查看器的 actionPerformed 方法。

我的问题如下:我打算有两个 JPanel,每个都专门用于显示各自玩家的手牌。当玩家抽出一张新卡时,一个新的 ImageIcon 将添加到面板中。我的问题是查看者类如何知道玩家手上添加了哪张牌?

我想我可以在通知事件之前存储玩家的手牌,然后在通知事件发生时,将新状态与旧状态进行比较,以找出发生了什么变化。我在这里完全是新手,所以我可能是完全错误的,但这样做似乎有点乏味。

是否有更有效/通用的方法来检测模型在状态前后发生的变化?另一种解决方案是每次通知发生时重新绘制整个面板?这是一个更好的主意吗?

最佳答案

ActionListener 相当致力于按钮行为。在您的用例中,我建议您创建自己的监听器类,该类携带一个包含事件类型和值的自定义事件。通常,事件类型可以是“新牌”、“新牌”,并且值可以是玩家 ID 和牌值。

对于干净的 MVC 实现,您的面板应该从事件对象获取所需的所有事件信息。它越独立于全局环境,就越可重用和健壮。

关于java - 关于 java 游戏的 MVC 框架的快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887141/

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