LibGdx解析文件时出错

时间:2015-06-26 19:24:01

标签: android parsing libgdx

我最近通过Android Studio开始了一个新的游戏项目,并在名为Tiled的软件中制作了一个tilemap。但是我一直收到这个错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error parsing file: assets/Desert.tmx
     at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
     at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:77)
     at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:65)
     at com.poptag.game.PopTag.create(PopTag.java:29)
     at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:143)
     at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: assets\Desert.tmx (Internal)
     at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
     at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:163)
     at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:81)
     ... 5 more

这是加载和呈现它的代码:

@Override
public void create () {
    float w = Gdx.graphics.getWidth();
    float h = Gdx.graphics.getHeight();

    camera = new OrthographicCamera();
    camera.setToOrtho(false,w,h);
    camera.update();
    tiledMap = new TmxMapLoader().load("assets/Desert.tmx");
    tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);
    Gdx.input.setInputProcessor(this);
}

@Override
public void render () {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    camera.update();
    tiledMapRenderer.setView(camera);
    tiledMapRenderer.render();
}

我已将地图“Desert.tmx”和tileset“tmw_desert_spacing.png”放入Android和桌面的资源文件夹中。当我为桌面运行启动器时,我收到这些错误。

  
    

Here's the file tree

  

3 个答案:

答案 0 :(得分:2)

好吧,我解决了这个问题。我所要做的只是用Tiled重新制作地图并使用一个全新的tileset,一旦我加载了两个文件,它终于工作了。

答案 1 :(得分:0)

在你的: tiledMap = new Tmxblabla.load(assets / Desert.tmx) 你不能在这里加载名为Tiled的文件吗? 否则,我认为你不需要引用这个文件,因为你的代码中没有调用它。

答案 2 :(得分:0)

如果您打开地图 .tmx 文件
那么您会得到标签tileset firstgid="1" source="grass_and_water3.tsx"
指向图块集 .tsx 文件,甚至指向组合图块图像的 .tsx 文件,即.png文件

要解决此问题,只需将所有文件放在相同的位置,即asset /下,并在所有文件(.tmx,.tsx等)中提供相同的路径