在小型 java swing 2D 游戏中,创建棋盘视图的最佳解决方案是什么?
- 为电路板使用一个组件并一次自定义绘制它和检查器的每个正方形?
- 为电路板使用一个组件并创建另一个组件来模拟正方形,并使用它自己的油漆组件只为正方形完成这项工作。使用布局将每个 Square 实例放置在板上?
我知道这是主观的,我不想为此吵架。我只需要一些线索来弄清楚我应该走哪条路。我已经开始了一个辅助项目,并且我使用了 1),感觉有问题。
只需使用一个绘图面板/容器即可。
考虑一个基于瓷砖的游戏。使用您的第二个解决方案,每个图块都将是一个对象,内存会飙升,游戏会慢到爬行。
使用第一个选项你很灵活。你画你想要的,你有面板坐标,所以一切都是相对的。使用基于图块的示例,您将知道面板的高度和宽度,绘制正方形并酌情在 X 和 Y 坐标中递增。
诸如 Swing 或 .NET 的 Winforms 之类的 GUI 框架很昂贵,因为它们有很多其他游戏不需要的东西。因此,要回答您的问题,请选择选项一,而不是为您的棋盘上的每个棋子使用一个面板。
使用第二种方法的一个很好的解决方案,结合第一种方法是享元设计模式。您仍然可以使用 OO 对象,但您将拥有通常数量的一小部分。看看这个。