我大约一周前开始使用libGDX,我在tmx中加载有问题。平铺的地图。在我看来,游戏并没有找到"测试"。,但我不知道为什么!在我看来,这条路是正确的。
我使用"平铺"作为地图编辑器。图层格式为Base64。
这个屏幕截图显示了我用来加载tmx的代码。文件和项目结构:http://abload.de/img/tmxgpptc.png
我得到以下错误消息:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error parsing file: res/map/test.tmx
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:113)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:101)
at de.knightsquest.states.Play.<init>(Play.java:59)
at de.knightsquest.handler.GameStateManager.getState(GameStateManager.java:35)
at de.knightsquest.handler.GameStateManager.pushState(GameStateManager.java:46)
at de.knightsquest.handler.GameStateManager.<init>(GameStateManager.java:20)
at de.knightsquest.game.Game.create(Game.java:38)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: resmaptest.tmx (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:164)
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81)
... 9 more
您应该阅读这篇关于文件处理的wiki文章。
你必须把resmaptest.tmx
放在你的android项目的assets
文件夹中。你加载地图的方式假定了一个内部(android/assets)文件路径。
此外,我建议您通过AssetManager
加载TiledMap
。
假设您遵循ForeignGuyMike的教程,您将有一个项目,但通常您使用LibGDX-Tool自动生成项目。加载资源时,LibGDX在android项目的assets文件夹中查找。不要使用前面的res-folder,而是使用assets-folder。如果您自动生成项目,则依赖项都正确建立,并且通过调用load方法,libgdx在android项目中的assets-folder中查找文件。问题是你的文件路径现在应该只有"maps/test "。tmx"因为它已经在assets文件夹中查找了。
总的来说,我想这和上面的答案是一样的。我只是不喜欢移动整个文件夹结构的想法,因为资产是我们的资源…