目前,我一直致力于自己的项目,该项目应显示已在.txt文件中明确定义的切片。
每个Tile对象由:
表示public Tile(final int x, final int y, final int z, final boolean walkable, final BufferedImage image)
在下面的代码片段中,我绘制了与每个Tile关联的每个BufferedImage,但是绘图过程是如此冗长以至于我不知道是否还可以采取其他措施来减轻压力?
private void redrawTiles(Graphics2D g, final Tile[][] mapTiles, final int width, final int height) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, width, height);
if (mapTiles == null) return;
final float size = mapSize / 100f;
for (Tile[] mt : mapTiles) {
for (Tile t : mt) {
g.drawImage(t.getImage(), (int) (t.getX() * 20 * size), (int) (t.getY() * 20 * size), (int) (getWidth() * size),
(int) (getHeight() * size), null);
}
}
}
问题似乎与双重foreach有关,因为当我检查完成所有操作所需的时间时,平均大约1,500毫秒。将所有bufferedImages合并到一个我在屏幕上绘制的bufferedImage会更有效吗?
感谢您的时间。