是否有另一个图像变量然后缓冲图像,因为当我启动我的应用程序,从文本文档读取地图时,它落后很多
我的代码是BufferedImage(对不起,我不是英文):
for(int i = 0; i < pole[0].length; i++)
{
for(int j = 0; j < pole.length; j++)
{
if(pole[j][i] == 1)
{
g.setColor(Color.RED);
try {
// g.fillRect(j*40, i*40, 40, 40);
wall = ImageIO.read(ClassLoader.getSystemResource("Images/wall.gif"));
g.drawImage(wall, j*40, i*40, null);
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "Error: "+ex.getMessage());
}
}
}
}
答案 0 :(得分:4)
您需要加载图片i * j次,只需加载一次,然后对每个图块使用相同的参考。
即
Image wall = ImageIO.read("...");
for(int i=0;i < ...)
for(int j=0;j < ...)
g.drawImage(i*40, j*40, wall);
你不应该在不属于那里的循环中做事,你绝对不想在循环中做IO。而且你绝对不希望每次在循环中加载相同的精确图片,因为它不会在加载之间发生变化。