TmxMapLoader without libgdx



我正在开发自己的游戏,没有任何框架和引擎(除了JBox2D,因为我在物理方面遇到了很大的麻烦)。我需要将.tmx文件加载到我的游戏中。唯一现成的选择是 LibGDX 和他的TmxMapLoader .我向项目添加了依赖项,运行并得到了非常预期的崩溃:

Attempt to invoke interface method 'com.badlogic.gdx.files.FileHandle com.badlogic.gdx.Files.internal(java.lang.String)' on a null object reference at com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver.resolve(InternalFileHandleResolver.java:26)

我应该怎么做才能使用 TmxMapLoader 从资产加载.tmx?可能最好的解决方案是将游戏移植到 LibGDX,但我没有时间和愿望来研究我已经拥有的文档和返工。

如果您不想使用 LibGDX 框架及其文件模块,我建议您简单地浏览与 TMX 相关的代码并按照您想要的方式进行转换。毕竟,LibGDX是开源的。 FileHandle只是大多数平台上File的包装器,它应该很容易替换(或包含在您的项目中并与构造函数一起使用File)。Java提供了自己的XML阅读器,所以如果涉及到这一点,你也可以替换任何与XML相关的LibGDX代码。

恐怕默认的加载器实现也会加载纹理,因此如果不运行实际的 LibGDX 应用程序,它将不起作用。但是,如果您介意包含 LibGDX jar,您可以尝试扩展此类并删除所有与纹理相关的代码或将其替换为自定义图像加载代码。

最新更新