我大约一周前开始使用libGDX,我在tmx中加载时遇到问题。平铺地图。 据我所知,游戏并没有找到" test.tmx"但我不知道为什么!就我所见,路径是正确的。
我使用" Tiled"作为地图编辑器。图层格式为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: res\map\test.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
答案 0 :(得分:2)
您应该阅读this wiki article about file handling。
您必须将res\map\test.tmx
放在您的Android项目中的assets
文件夹中。加载地图的方式假定为内部(android / assets)文件路径。
此外,我建议您通过TiledMap
加载AssetManager
。
答案 1 :(得分:1)
假设您遵循ForeignGuyMike的教程,您将拥有一个项目,但通常您使用LibGDX-Tool自动生成项目。当加载ressources时,LibGDX会在android项目的assets文件夹中查找。不使用之前的res文件夹,而是使用assets-folder。 如果您自动生成项目,所有依赖项都已正确建立,并且通过调用load方法,libgdx会在 android项目的 assets-folder 中查找该文件。 事情是你的文件路径现在应该只是“maps / test.tmx”,因为它已经在资产文件夹中查找。
总的来说,这与我上面的答案是一样的想法...... 我只是不喜欢移动整个文件夹结构的想法,因为资产是我们的资源......