@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(); }
Вот что я получаю при запуске настольной версии:
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)
Я пробовал этот туто и этот , и я получаю ту же ошибку в той же строке
mLevel.getTiledMapRenderer().render(tmp.x, tmp.y, camera.viewportWidth, camera.viewportHeight);
.РЕДАКТИРОВАТЬ:Я только что заметил, что данные моего файла.tmx были автоматически закодированы Tiled Map Editor, поэтому я просто деактивировал его, но все равно получаю ту же ошибку.
Если я скопирую/вставлю этот проект(Я имею в виду весь проект, не только метод рендеринга ())он работает, но когда я пытаюсь загрузить свою собственную карту в свой собственный проект, он просто вылетает...Поэтому после этого я решил упростить свой метод
render()
, просто сделав ссылку, которую я дал ранее, и используяTiledMapHelper class
, предоставленный автором, так что теперь есть мой методrender()
:mHelper.getCamera().update(); mHelper.render();
. Все еще крашуииииииииииииинг.....
Если кто-то может помочь, я был бы очень признателен, потому что я действительно схожу с ума!