Error loading a tiledmap when I put a layer of libGDX objects

0

Hi, I'm doing a game with libGDX but I have a problem, I created a test map with tiled. And everything was perfect for me. Until I wanted to add a layer of objects to make the collisions of the map.

After I did that I got this error:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load asset: C:/Users/HOME/Desktop/tilemap/TiledMap/data/maps/test.tmx
at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:517)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:351)
at com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:372)
at tiled.codeTiled.create(codeTiled.java:39)
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: Couldn't load asset: C:/Users/HOME/Desktop/tilemap/TiledMap/data/maps/test.tmx
at com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:137)
at com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:89)
at com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:454)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:349)
... 4 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load tilemap 'C:/Users/HOME/Desktop/tilemap/TiledMap/data/maps/test.tmx'
at com.badlogic.gdx.utils.async.AsyncResult.get(AsyncResult.java:46)
at com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:135)
... 7 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load tilemap 'C:/Users/HOME/Desktop/tilemap/TiledMap/data/maps/test.tmx'
at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadAsync(TmxMapLoader.java:144)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadAsync(TmxMapLoader.java:60)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:73)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:34)
at com.badlogic.gdx.utils.async.AsyncExecutor$2.call(AsyncExecutor.java:65)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: For input string: "191.5"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at com.badlogic.gdx.utils.XmlReader$Element.getIntAttribute(XmlReader.java:637)
    at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadObject(TmxMapLoader.java:552)
    at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadObjectGroup(TmxMapLoader.java:538)
    at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadTilemap(TmxMapLoader.java:223)
    at com.badlogic.gdx.maps.tiled.TmxMapLoader.loadAsync(TmxMapLoader.java:142)
    ... 8 more

I will also put a part of the code where I declare the map itself, just in case the error is there:

public class codeTiled implements ApplicationListener {

private TiledMap map;
private AssetManager manager;

private OrthographicCamera camera;
private OrthogonalTiledMapRenderer renderer;
private float rotationSpeed;
private playerEx p;
private SpriteBatch batch;

public void create() {      
    manager = new AssetManager();
    manager.setLoader(TiledMap.class, new TmxMapLoader());
    manager.load("maps/test.tmx", TiledMap.class);
    manager.finishLoading();
    map = manager.get("maps/test.tmx", TiledMap.class);
    batch=new SpriteBatch();
    MapProperties properties = map.getProperties();

    float w = Gdx.graphics.getWidth();
    float h = Gdx.graphics.getHeight();

    camera = new OrthographicCamera(50, 50 * (h / w));
    //camera.position.x = mapWidthInPixels * .5f;
    //camera.position.y = mapHeightInPixels * .35f;
    float unitScale = 1 / 12f;
    renderer = new OrthogonalTiledMapRenderer(map, unitScale);
    p=new playerEx(200, 100, camera,map);
    //collisionLayer.setVisible(true);
    Pixmap pm = new Pixmap(Gdx.files.internal("sprites/UI/crosshair.png"));
    Gdx.input.setCursorImage(pm, 20, 18);
    pm.dispose();

}

@Override
public void dispose() {
    manager.dispose();
    map.dispose();
    renderer.dispose();
}

@Override
public void render() {  
    //collisionLayer.setOpacity(0.90f);
    handleInput();
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    camera.update();
    renderer.setView(camera);
    renderer.render();
    batch.begin();
    p.render(batch);
    batch.end();
}

private void handleInput() {

    if (Gdx.input.isKeyPressed(Input.Keys.ESCAPE)){
        System.exit(0);
    }
    if (Gdx.input.isKeyPressed(Input.Keys.Q)) {
        camera.rotate(-rotationSpeed, 0, 0, +1);
    }
    if (Gdx.input.isKeyPressed(Input.Keys.E)) {
        camera.rotate(rotationSpeed, 0, 0, +1);
    }camera.zoom = MathUtils.clamp(camera.zoom, 0.1f, 100/camera.viewportWidth);
    float effectiveViewportWidth = camera.viewportWidth * camera.zoom;
    float effectiveViewportHeight = camera.viewportHeight * camera.zoom;
    camera.position.x = MathUtils.clamp(camera.position.x, effectiveViewportWidth / 2f, 100 - effectiveViewportWidth / 2f);
    camera.position.y = MathUtils.clamp(camera.position.y, effectiveViewportHeight / 2f, 100 - effectiveViewportHeight / 2f);
}

I hope you can help me, I appreciate it!

    
asked by Luis Bermúdez 23.11.2018 в 21:30
source

0 answers