使用g2d.drawImage-Java时有很多延迟
我正在使用Graphics2D在我的游戏中绘制地图 在循环中,它称之为:使用g2d.drawImage-Java时有很多延迟,java,awt,game-engine,bufferedimage,graphics2d,Java,Awt,Game Engine,Bufferedimage,Graphics2d,我正在使用Graphics2D在我的游戏中绘制地图 在循环中,它称之为: for(int i = 0; i < tiles.length; i++){ for(int j = 0; j < tiles[i].length; j++){ if(tiles[i][j]==1){ //GRASS g2d.drawImage(getImage.getTile("grass.png", 0, 0, ), i* 32, j*
for(int i = 0; i < tiles.length; i++){
for(int j = 0; j < tiles[i].length; j++){
if(tiles[i][j]==1){ //GRASS
g2d.drawImage(getImage.getTile("grass.png", 0, 0, ), i* 32, j* 32, null);
}
if(tiles[i][j]==2){ //ROCK
g2d.drawImage(getImage.getTile("rock.png", 0, 0), i* 32, j* 32, null);
}
}
}
请注意:
一切都正常,我来这里不是因为错误,只是滞后
在方法getImage.getTile(“grass.png”)中,它只是一个seprate类,用于返回给定路径的缓冲图像
每次调用此方法时,您都在读取该文件。因为这段代码是在循环中执行的,所以有很多开销
创建类时,只能创建一次BuffereImage
在方法getImage.getTile(“grass.png”)中,它只是一个seprate类,用于返回给定路径的缓冲图像
每次调用此方法时,您都在读取该文件。因为这段代码是在循环中执行的,所以有很多开销
创建类时,只能创建一次BuffereImage 所以,如果我做一些类似于'bufferedimagegrass=ImageIO.read(this.class.getResource(“grass.png”))的事情会更好吗;BuffereImage stone=ImageIO.read(this.class.getResource(“stone.png”);对于(inti=0;i
public static BufferedImage getTile(String name, int x, int y){
try{
BufferedImage imageMap;
imageMap = ImageIO.read(getImage.class.getResource("/tiles/"+name));
BufferedImage a = imageMap.getSubimage(x * 32, y * 32 , 32, 32);
return a;
}catch(Exception e){
}
return null;
}