一个类的多个实例,加载图像,在java中提高效率

时间:2015-06-03 23:03:38

标签: java bufferedimage javax.imageio

我制作的游戏有100只蜜蜂追你,他们有精灵。当他们打你的时候,你会失去生命。如果你被所有100人击中,你就死了,游戏就会重置。问题是,当它重置时,它会为每只蜜蜂重新加载图像。这种情况发生了100次,每次都有2张图片,它会加起来并造成严重的延迟。

这是我获取图片的代码:

public void loadPic(){//open up all of the images and store them in an ArrayList
    String beeDirectory="img/beeImgs/";
    File folder = new File(beeDirectory);
    File[] listOfFiles = folder.listFiles();

    for(int i=0;i<listOfFiles.length;i++){
        beeImgs.add(new ArrayList<BufferedImage>());
    }

    for(int h=0;h<listOfFiles.length;h++){
        File file=listOfFiles[h];
        if(file.isDirectory()){
            try{
                File folder2=new File(beeDirectory+file.getName()+"/");
                File[]listOfFiles2=folder2.listFiles();
                for (int i = 0; i < listOfFiles2.length; i++){
                    File file2 = listOfFiles2[i];
                    if (file2.isFile() && file2.getName().endsWith(".png")){
                            beeImgs.get(h).add(ImageIO.read(new File(beeDirectory+file.getName()+"/"+file2.getName())));
                    }
                }
            }
            catch(IOException e){}
        }
    }
}

非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

继续使用原始对象。创建它们一次然后当它们到达用户隐藏它们并在开始时重新定位它们而不是去掉它们并重新创建它们。应该绝对没有延迟。