@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
sprite.setProjectionMatrix(camera.combined);
mLevel.getTiledMapRenderer().getProjectionMatrix().set(camera.combined);
Vector3 tmp = new Vector3();
tmp.set(0, 0, 0);
camera.unproject(tmp);
mLevel.getTiledMapRenderer().render(tmp.x, tmp.y, camera.viewportWidth, camera.viewportHeight);
sprite.begin();
...
sprite.end();
}
Esto es lo que pasa cuando el lanzamiento de la versión de escritorio:libgdx - aplicación se bloquea cuando TiledMapRenderer.render llamada()
Exception in thread "LWJGL Application" java.lang.IllegalArgumentException: Number of remaining buffer elements is 0, must be at least 1. Because at most 1 elements can be returned, a buffer with at least 1 elements is required, regardless of actual returned element count
at org.lwjgl.BufferChecks.throwBufferSizeException(BufferChecks.java:162)
at org.lwjgl.BufferChecks.checkBufferSize(BufferChecks.java:189)
at org.lwjgl.BufferChecks.checkBuffer(BufferChecks.java:230)
at org.lwjgl.opengl.GL15.glBufferData(GL15.java:141)
at com.badlogic.gdx.backends.lwjgl.LwjglGL20.glBufferData(LwjglGL20.java:93)
at com.badlogic.gdx.graphics.glutils.VertexBufferObject.bind(VertexBufferObject.java:208)
at com.badlogic.gdx.graphics.Mesh.bind(Mesh.java:268)
at com.badlogic.gdx.graphics.g2d.SpriteCache.begin(SpriteCache.java:868)
at com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer.render(TileMapRenderer.java:336)
at com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer.render(TileMapRenderer.java:286)
at com.crunsh.libgdx.screens.GameScreen.render(GameScreen.java:102)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:202)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131)
He intentado tanto this tuto y this one, y me sale el mismo error en la misma línea mLevel.getTiledMapRenderer().render(tmp.x, tmp.y, camera.viewportWidth, camera.viewportHeight);
.
EDIT: Acabo de notar que los datos de mi archivo .tmx fueron codificados automáticamente por Tiled Map Editor, por lo que acabo de desactivarlos, pero sigo recibiendo el mismo error.
Si copiar/pegar this project (me refiero a todo el proyecto, no sólo el método render()) funciona, pero cuando intento cargar mi propio mapa en mi propio proyecto sólo se estrella ...
Así después de eso decidí simplificar mi método render()
con sólo hacer como el enlace que he dado antes y mediante el uso de la TiledMapHelper class
el autor proporciona, por lo que no es mi método render()
ahora:
mHelper.getCamera().update();
mHelper.render();
Aún crashiiiiiiiiiiiiiingg .....
Si alguien puede por favor proporcionar algo de ayuda, sería gr ¡Lo aprecio mucho porque en realidad me estoy volviendo loco!
He visto una excepción similar cuando he alterado mis definiciones de malla (olvidando cargar vértices o estableciendo la longitud en cero). Por lo tanto, lo más probable es que algo sea incorrecto con la definición del mapa de mosaico. Verifique si hay requisitos de tamaño/escala (como potencia de 2 o un mínimo de X, o algo así) que no cumple. –
Gracias por su respuesta. Acabo de comprobar y todo con una potencia de 2: la ventana gráfica de la cámara, el tamaño de cada azulejo y el tamaño de mi level.png que contiene todas las fichas empacadas en una imagen. Solo el tamaño del mapa no encajaba, pero cambiarlo no resolvió mi problema, de todos modos el tutorial usa un mapa de 60 * 15, por lo que el mapa que se muestra tampoco. – Flawyte