【问题标题】:Java opening images for sprites精灵的 Java 打开图像
【发布时间】:2015-08-10 03:45:25
【问题描述】:

我正在制作一个需要多组精灵的游戏,它们需要以二维列表/数组的形式存储。我有 2 个需要精灵的对象,你(那个人)和蜜蜂。我将图像按这两个字符排序,然后是他们的动作,然后是使用文件夹的方向。

我编写了这段代码来打开“you”文件夹并将子文件夹内容插入到一个向下移动的二维数组列表中:

public void loadPic(){//open up all of the images and store them in an ArrayList
    File folder = new File("img/youImgs/run/right");
    File[] listOfFiles = folder.listFiles();
    ArrayList<BufferedImage> runImgs=new ArrayList<BufferedImage>();
    for (int i = 0; i < listOfFiles.length; i++) {
        File file = listOfFiles[i];
        if (file.isFile() && file.getName().endsWith(".png")) {
            try {
                runImgs.add(ImageIO.read(new File("img/youImg/run/right"+file.getName())));
            } 
            catch (IOException e) {
            }
        }
    }
    youImgs.add(runImgs);
}

我不知道如何修改它以使其有用和工作。

我需要将它们保存到单独的列表中,以便我可以运行它们。

如果您对如何添加精灵有更好的想法,请告诉我。

请帮帮我。

提前谢谢你。

【问题讨论】:

    标签: java directory sprite subdirectory


    【解决方案1】:

    我发现了如何做到这一点。 我编辑了我的文件夹目录,将每个移动都放在一个文件夹中,然后将所有这些文件夹放在一个 youImg 文件夹中。

    下面是我的代码,供其他需要帮助的人使用。

    public void loadPic(){//open up all of the images and store them in an ArrayList
    
    
        String youDirectory="img/youImgs/";
        File folder = new File(youDirectory);
        File[] listOfFiles = folder.listFiles();
    
        for(int i=0;i<listOfFiles.length;i++){
            youImgs.add(new ArrayList<BufferedImage>());
        }
    
        for(int h=0;h<listOfFiles.length;h++){
            File file=listOfFiles[h];
            if(file.isDirectory()){
                try{
                    youMoves.add(file.getName());
                    File folder2=new File(youDirectory+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")){
                                youImgs.get(h).add(ImageIO.read(new File(youDirectory+file.getName()+"/"+file2.getName())));
                        }
                    }
                }
                catch(IOException e){}
            }
        }
    }
    

    感谢本网站上的许多其他问题帮助我找到答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      相关资源
      最近更新 更多