【问题标题】:Managing directories in libGDX在 libGDX 中管理目录
【发布时间】:2013-11-06 13:12:52
【问题描述】:

我需要在我的游戏中访问包含关卡描述的目录。

Gdx.files.internal("data/levels");

在 Android 上它工作正常,但在桌面上 levels 不被识别为目录,而且 list() 返回 null。为什么会发生,解决方案是什么?我使用 maven 作为构建工具,我检查了 .jar 是否包含所有必要的资产。

我发现了 hack:

Gdx.files.internal("./bin/data/levels");

但显然只能在开发环境中使用,效果并不理想。

【问题讨论】:

  • 您是否将桌面项目build path 配置为指向其资产?
  • 是的,我有。在资源标签中。
  • 也许你应该用斜杠结束路径:“data/levels/”
  • 我试过了,也没用。

标签: java android libgdx


【解决方案1】:

试试Gdx.files.local("data/levels")

请参阅https://code.google.com/p/libgdx/wiki/FileHandling,并注意“内部”文件是通过 CLASSPATH 搜索的。未实现在类路径上列出“目录”(并且不太可能列出)。

【讨论】:

  • 在桌面上它将返回相对于应用程序工作目录的目录,而不是 jar 中的目录。我已经对其进行了测试,假设我在数据目录中的 jar 中打包了 somefileGdx.files.local("data/somefile").exists() 将返回 false,而 Gdx.files.internal("data/somefile").exists() 返回 true。为什么没有实现在类路径上列出目录?这是一个大问题吗?
  • 是的,不支持在 jar 文件或类路径中列出“目录”的内容。我相信一般情况是丑陋的,因为“目录”可以跨越类路径上的多个条目。有关一些解决方法,请参阅 stackoverflow.com/questions/1429172/…。对于您的 Libgdx,可能只是生成一个包含文件列表的文件,以回避问题。
猜你喜欢
  • 1970-01-01
  • 2015-06-24
  • 2022-06-29
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 2013-11-27
相关资源
最近更新 更多