我正在使用 Java 创建一个图形化的 roguelike 游戏。在游戏中,我将 Tile 对象的二维数组绘制到 JPanel 上。这些 Tile 对象代表地面。我有一个 .bmp 精灵表,其中包含我想用来绘制的所有纹理。每次玩家移动时,玩家可见的图块都需要重新绘制。
我的问题是性能问题。我过去已经实现了这一点,我让 Tiles 扩展了 JPanel,每个 Tile 只使用 bufferedImage.getSubImage() 显示精灵表的适当部分,而父 JPanel 只是在所有 Tiles 上调用 paint()二维数组。这对于上一个项目中的小型 30x20 地图效果很好,但我不确定它是否适用于当前游戏。
我应该使用相同的方法还是有其他可能的解决方案可以加快绘制时间?Tile 类是否应该扩展一些其他的 Swing 或 AWT 组件,例如 BufferedImage 还是不会产生影响?
谢谢。