我试图将一堆图像加载到一个程序中并每秒重复60次。我的问题是我的CPU使用率超过20%且程序甚至没有完成。
这是加载图像的循环:
for(int i = 0;i < LevelCompiler.Objectlenght;i++) {
LevelCompiler.objects[i].drawObjects(g);
}
这是drawObjects方法:
g.drawRect(x, y, width, height);
g.drawImage(TextureSystem.textureSystem(TextureID), x, y, width, height, null);
加载imgae的textureSystem方法:
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class TextureSystem {
static String TexturePath;
static BufferedImage img;
public static BufferedImage textureSystem(int tid) {
TexturePath = "/textures/Objects/SObject+" + tid + ".jpg";
try {
img = ImageIO.read(ResourceLoader.load((TexturePath)));
} catch (IOException e) {
e.printStackTrace();
}
return img;
}
}
这是上面的ResourceLoader
import java.io.InputStream;
public final class ResourceLoader {
public static InputStream load(String path) {
InputStream input = ResourceLoader.class.getResourceAsStream(path);
if (input == null) {
System.out.println("error");
}
return input;
}
}
我认为高CPU使用率是因为我一次又一次地加载图像。任何建议如何使用另一种方法?