2014-06-11 87 views
1

我大約一個星期前開始使用libGDX,並且在加載tmx時遇到問題。平鋪的地圖。 據我看到遊戲沒有找到「test.tmx」,但我不知道爲什麼!就我所見,路徑是正確的。LibGDX + Eclipse |無法加載.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 
+0

是文件格式是否正確? 你如何運行你的項目 - 你的資源導出到buildpath? – angrybobcat

回答

2

你應該閱讀this wiki article about file handling

您必須將res\map\test.tmx放入您的Android項目的assets文件夾中。你加載地圖的方式假設一個內部(android/assets)文件路徑。

此外,我建議你通過AssetManager加載TiledMap

+0

Thx!是的,這是問題。我將閱讀維基文章。 :) –

1

假設您遵循了ForeignGuyMike的教程,您將擁有一個項目,但通常您會使用LibGDX工具自動生成您的項目。加載資源時LibGDX在Android項目的資產文件夾中查找。而不是使用之前的res-folder,使用assets-folder。 如果您自動生成項目,依賴關係全部正確建立,並且通過調用加載方法,libgdx將在您的Android項目中查找資產文件夾中的文件。 事情是你的文件路徑現在只應該是「maps/test.tmx」,因爲它已經在資產文件夾中查看了。

一般來說這是同樣的想法的答案上面我猜... 我只是不喜歡移動整個文件夾結構的想法,因爲資產是我們的ressources ...

+0

棒極了!非常感謝! –