【发布时间】:2013-04-17 17:41:40
【问题描述】:
我正在尝试为我的团队在大学做的“游戏”项目创建战舰游戏。我以前从未真正使用过 GUI,以前几乎所有的输出都在 Eclipse 控制台中。
首先,我创建了一个 GUI 类,它实际上是我的“跑步者”类。它加载了一个 JFrame。
我有第二个类 GUIGrid,它为将要显示的两个游戏板设置一个维度,并使用嵌套的 for 循环从 GUICells 创建网格。
这包含侦听器等来检测鼠标在做什么并存储每个单元格的 x 和 y 坐标。我已经运行了一小段测试代码,因此我可以单击任一网格上的任意位置,然后弹出窗口会告诉我该单元格的确切坐标。
除了这些类之外,我还有一个 Ship 类,它包含五个用于船舶类型的子类和一个 Player 类,它存储玩家的名称并创建一个 Ship 对象数组供他们使用。
最后,我有了我的逻辑课。我有一个 GridLogic 类和一个 CellLogic 类。前者使用嵌套的 for 循环来创建 CellLogic 对象的二维数组。然后,CellLogic 类存储坐标和有关单元是否受到攻击的信息。
我的问题(终于!)是 - 这是对系统建模的正确方法吗?当我查看 CellLogic 和 CellGUI 类时,它们似乎有相当相似的东西。此外,虽然我可以让 GUI 响应鼠标点击,但我真的很难将 GUI 连接到 Logic。例如,我不知道如何将船只添加到网格上,然后将哪些位置存储船只存储在 2D 数组中。在没有发布大量代码的情况下,我希望有人能够告诉我我是否至少在正确的轨道上,或者我是否将系统分离得太多。
【问题讨论】:
-
您已经有很多出色的答案,而且您的方法非常合理。如果您需要额外的参考资料,您可以在TicTacToe code 中找到一个基本的回合制 JavaFX 网格游戏。