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