LibGdx 解析文件时出错

LibGdx Error parsing file

我最近通过 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.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" 和图块集 "tmw_desert_spacing.png" 放入 Android 和桌面的资产文件夹中。当我 运行 桌面启动器时,我收到这些错误。

Here's the file tree

在你的: 平铺地图 = 新 Tmxblabla.load(assets/Desert.tmx) 您不应该在此处加载名为 Tiled 的文件吗? 否则我认为您不需要引用此文件,因为您的代码中未调用它。

嗯,我解决了这个问题。我所要做的就是用 Tiled 重新制作一张地图并使用一个全新的图块集,当我加载这两个文件后它终于起作用了。

如果打开地图.tmx文件
然后你得到标签 tileset firstgid="1" source="grass_and_water3.tsx"
它指向 tileset .tsx 文件,甚至 .tsx 文件指向组合的图块图像,即 .png 文件

为了解决这个问题,只需将所有文件保存在同一位置,即在 asset/ 下,并在所有文件(.tmx、.tsx 等)中提供相同的路径