1

我大约一周前开始使用 libGDX,但在 tmx 中加载时遇到问题。平铺地图。据我所知,游戏没有找到“test.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: 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
4

2 回答 2

2

您应该阅读这篇关于文件处理的 wiki 文章

您必须将res\map\test.tmx您的android项目放在assets文件夹中。加载地图的方式假定一个内部(android/assets)文件路径。

此外,我建议您TiledMap通过AssetManager.

于 2014-06-11T06:32:21.667 回答
1

假设您遵循 ForeignGuyMike 的教程,您将拥有一个项目,但通常您使用 LibGDX-Tool 自动生成您的项目。加载资源时,LibGDX 在 android 项目的 assets 文件夹中查找。不要使用之前的 res-folder,而是使用 assets-folder。如果您自动生成项目,则所有依赖项都已正确建立,并且通过调用 load 方法,libgdx在您的android 项目的assets-folder中查找文件。问题是您的文件路径现在应该只是“maps/test.tmx”,因为它已经在资产文件夹中查找。

一般来说,我猜这与上面的答案相同......我只是不喜欢移动整个文件夹结构的想法,因为资产是我们的资源......

于 2014-12-04T21:24:55.690 回答