我在没有任何框架和引擎的情况下开发自己的游戏(除了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)
使用.tmx
从资产加载TmxMapLoader
应该怎么做?
可能最好的解决方案是将游戏移植到LibGDX,但我没有时间和愿望研究我已经拥有的文档和返工。
答案 0 :(得分:0)
如果您不想使用LibGDX框架及其文件模块,我建议您只需浏览与TMX相关的代码并按照您希望的方式进行转换。毕竟,LibGDX是open-sourced。在大多数平台上,FileHandle
只是File
的包装器,它应该直接替换(或包含在您的项目中并与File
构造函数一起使用)。 Java提供了自己的XML阅读器,因此,如果要做到这一点,您将能够替换任何与XML相关的LibGDX代码。
我担心默认加载器实现也会加载纹理,因此如果不运行实际的LibGDX应用程序,它将无法工作。但是,如果您不介意包括LibGDX jar,您可以尝试扩展此类并删除所有与纹理相关的代码或将其替换为自定义图像加载代码。