在小型 java swing 2D 游戏中,创建棋盘 View 的最佳解决方案是什么?
- 为棋盘使用一个组件并一次自定义绘制它和方格的每个方 block ?
- 为棋盘使用一个组件,并创建另一个组件来对正方形进行建模,并使用其自己的绘制组件仅对正方形进行处理。使用布局将每个 Square 实例放置在面板中?
我知道这是主观的,我不想为此争吵。我只需要一些线索来确定我应该走哪条路。我开始了一个副项目,我一直在使用 1),感觉有什么不对。
最佳答案
只需一个绘图面板/容器就可以处理所有内容。
考虑一个基于图 block 的游戏。如果使用您的第二个解决方案,每个图 block 都是一个对象,内存会猛增,游戏会变慢。
使用第一个选项你很灵活。你画你想要的,你有面板坐标,所以一切都是相对的。使用基于图 block 的示例,您会知道面板的高度和宽度,绘制正方形并适当增加 X 和 Y 坐标。
GUI 框架(例如 Swing 或 .NET 的 Winforms)非常昂贵,因为它们包含许多游戏不需要的其他内容。因此,要回答您的问题,请选择选项一,而不是说为棋盘上的每个棋子使用一个面板。
将第二种方法与第一种方法结合使用的一个很好的解决方案是 Flyweight Design Pattern .您仍然可以使用 OO 对象,但您将拥有通常数量的一小部分。检查一下。
关于Java Swing 2D小游戏: how to modelize the view?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284460/