Java Swing小型2D游戏:如何对视图进行建模?

4
在一个小的Java Swing 2D游戏中,创建棋盘视图的最佳解决方案是什么?
  1. 使用组件来创建棋盘,并自定义绘制每个棋子的方块?
  2. 使用组件创建棋盘,再创建另一个模拟方块的组件,并为方块单独创建一个绘制组件。使用布局将每个方块实例放置在棋盘上?
我知道这是主观的,我不想争论。我只需要一些线索来确定应该选择哪种方式。我已经开始了一个副项目,并使用1),但感觉有些不对劲。
2个回答

6

只需使用一个绘图面板/容器即可完成所有操作。

考虑瓦片式游戏。使用第二种解决方案,每个瓦片都将成为一个对象,内存将飙升,游戏将变得缓慢。

使用第一种选项,您是灵活的。您可以绘制所需内容,您拥有面板坐标,因此一切都相对于此。使用以瓦片为基础的示例,您将知道面板的高度和宽度,绘制正方形并根据需要适当增加X和Y坐标。

GUI框架(例如Swing或.NET的Winforms)非常昂贵,因为它们具有许多游戏不需要的其他功能。因此,回答您的问题,请选择第一种选项,而不是为棋盘上的每个检查器使用面板。

使用第二种方法的一个不错的解决方案,结合第一种方法,是享元设计模式。您仍然可以使用OO对象,但数量仅为通常数量的一小部分。看看吧。


3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接