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