#java #libgdx #2d #tiled
#java #libgdx #2d #выложенный плиткой
Вопрос:
Hi I'm trying to add tiled map but all time I'm getting the same error:
"Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error parsing file: mar.tmx
at com.badlogic.gdx.utils.XmlReader.parse(XmlReader.java:83)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:70)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:59)"
Я видел похожий пост, и там кто-то сказал, что моя карта имеет неправильный формат, но я перепробовал все форматы и остался тем же самым. После отладки я получил map = null. У кого-нибудь есть идеи, почему это не работает?
LLL————————
LLL————————
LLL————————-
LLL—————————
LLLL—————————
LLL————————-
LLL————————
package Screens;
import Scenes.Hud;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.mygdx.game.Marioxx;
public class PlayScreen implements Screen
{
private com.mygdx.game.Marioxx game;
private OrthographicCamera gamecam;
private Viewport gamePort;
//Tiled map variables
private TmxMapLoader maploader;
public TiledMap map;
private OrthogonalTiledMapRenderer renderer;
private Hud hud;
public PlayScreen(com.mygdx.game.Marioxx game)
{
this.game = game;
gamecam = new OrthographicCamera();
gamePort = new FitViewport(Marioxx.V_WIDTH, Marioxx.V_HEIGHT, gamecam);
hud = new Hud(game.batch);
maploader = new TmxMapLoader();
map = maploader.load("mar.tmx");
renderer = new OrthogonalTiledMapRenderer(map);
gamecam.position.set(gamePort.getScreenWidth()/2, gamePort.getScreenHeight()/2, 0);
}
@Override
public void show()
{
}
@Override
public void render(float delta)
{
Gdx.gl.glClearColor(1,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
game.batch.setProjectionMatrix(hud.stage.getCamera().combined);
hud.stage.draw();
renderer.render();
}
public void handleInput(float dt )
{
if(Gdx.input.isTouched())
{
gamecam.position.x = 100* dt;
}
}
public void update(float dt)
{
handleInput(dt);
gamecam.update();
renderer.setView(gamecam);
}
@Override
public void resize(int width, int height)
{
gamePort.update(width, height);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
map.dispose();
renderer.dispose();
}
}
Комментарии:
1. Судя по тому, что в трассировке стека указано «XmlReader.parse», я ожидаю, что ваша карта должна быть в формате XML, не так ли?
2. Нет, я уже пробовал это, и это не сработало.