4

在小型 java swing 2D 游戏中,创建棋盘视图的最佳解决方案是什么?

  1. 为电路板使用一个组件并一次自定义绘制它和检查器的每个正方形?
  2. 为电路板使用一个组件并创建另一个组件来模拟正方形,并使用它自己的油漆组件只为正方形完成这项工作。使用布局将每个 Square 实例放置在板上?

我知道这是主观的,我不想为此吵架。我只需要一些线索来弄清楚我应该走哪条路。我已经开始了一个辅助项目,并且我使用了 1),感觉有问题。

4

2 回答 2

6

只需使用一个绘图面板/容器即可。

考虑一个基于瓷砖的游戏。使用您的第二个解决方案,每个图块都将是一个对象,内存会飙升,游戏会慢到爬行。

使用第一个选项你很灵活。你画你想要的,你有面板坐标,所以一切都是相对的。使用基于图块的示例,您将知道面板的高度和宽度,绘制正方形并酌情在 X 和 Y 坐标中递增。

诸如 Swing 或 .NET 的 Winforms 之类的 GUI 框架很昂贵,因为它们有很多其他游戏不需要的东西。因此,要回答您的问题,请选择选项一,而不是为您的棋盘上的每个棋子使用一个面板。

使用第二种方法的一个很好的解决方案,结合第一种方法是享元设计模式。您仍然可以使用 OO 对象,但您将拥有通常数量的一小部分。看看这个。

于 2010-02-17T21:17:55.460 回答
3

像 Finglas 一样,我倾向于您的第一种方法。这个基于瓷砖的游戏就是一个具体的例子。相比之下,这款基于组件的游戏使用GridLayoutJToggleButton. 前者稍微复杂一些,但即使在大屏幕上也能很好地播放;后者更简单,但对于合理的游戏来说已经足够了。您可能需要尝试游戏的几何和逻辑来决定更喜欢哪个。

于 2010-02-18T05:04:25.267 回答