我正在使用平铺制作libgdx
游戏制作地图,在我的关卡选择屏幕中,我读取了地图文件夹中的所有文件,并计算以.tmx
结尾的文件,看看如何我必须制作许多级别的按钮。
所有这一切都运行正常,但是当我尝试使用intellij gradle dist命令将项目导出到jar时,它就会停止工作。
我猜它在导出文件时改变了文件的路径,但我不知道如何解决它。
以下是读取文件的代码
new File("maps").listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".tmx")) {
numberOfLevels++;
}
return true;
}
});
答案 0 :(得分:0)
访问"地图"喜欢它可能不包含在jar文件中,但需要与jar在同一目录中。使用new File(...)
您正在访问PC的文件系统,该系统无法找到"地图"在jar文件中编译的文件
答案 1 :(得分:0)
要计算jar中.tmx
个文件的数量,请尝试将其视为zip并计算感兴趣的文件数量,如下所示:
List<String> classNames = new ArrayList<String>();
ZipInputStream zip = new ZipInputStream(new FileInputStream("/path/to/jar/file.jar"));
int numberOfLevels=0;
for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) {
if (!entry.isDirectory() && entry.getName().endsWith(".tmx")) {
numberOfLevels++;
}
}