LibGDX – сбой приложения при вызове TiledMapRenderer.render ()

@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); ,

EDIT: Я только заметил, что данные моего .tmx-файла были автоматически закодированы в Tiled Map Editor, поэтому я просто деактивировал его, но все равно получаю ту же ошибку.
Если я копирую / вставляю этот проект (я имею в виду весь проект, а не только метод render ()), он работает, но когда я пытаюсь загрузить свою собственную карту в моем собственном проекте, она просто сбой …

Поэтому после этого я решил упростить метод render() , просто выполнив ссылку, которую я дал ранее, и используя TiledMapHelper class предоставляет автор, поэтому теперь есть метод render() :

 mHelper.getCamera().update(); mHelper.render(); 

Все еще crashiiiiiiiiiiiiiingg …..
Если кто-то может оказать некоторую помощь, это будет очень признательно, потому что я действительно схожу с ума!

    Я нашел причину ошибки:
    1) все плитки в моем «packfile» имели -1 в качестве индекса
    2) все плитки в моем «packfile» имели то же имя, что и исходное имя файла плитки, но не то же имя, что и файл .png, содержащий все упакованные плитки.

    В настоящее время мой экран черный, поэтому я думаю, что ни одна плитка не нарисована (вероятно, потому, что я дал случайные индексы для фрагментов в файле packfile – исправлен, см. Конец сообщения ), но исключений не выбрасывается, и это точка.

    Эти ошибки связаны с программой, которую я использовал для упаковки плиток, которые должны были заставить меня выиграть время LOL. Поэтому я попробую разные варианты или использовать что-то еще.
    Если вы хотите знать, что программа была «TexturePacker GUI» v3.1.0.

    Если вы знаете, какие варианты я должен / не использовать, чтобы избежать ошибок, пожалуйста, дайте мне знать.

    EDIT: нашел полезный и рабочий инструмент для упаковки плиток, вот он: http://freigabe.philweb.de/bubblr/texturepacker_edited.jar (ссылка мертва, используйте это вместо => http://bit.ly/ 1a831nv или другой упаковочный инструмент => http://bit.ly/1aLgAFt )

    Чтобы использовать его, откройте cmd и перейдите в каталог, в который загрузился файл .jar, а затем:

     //You should create, in the same directory of the .jar file, two additionnal folders //Call the first folder 'input' and put in all your tiles (rename them "level_1.png", "level_..") //Call the 2nd folder 'output' and leave it empty //Then just type in the command prompt : java -jar nameOfDownloadedJarFile.jar input output level //Then rename the "input1.png" into "level.png", and "level.pack" into "level packfile" //Open "level packfile" with notepad and change "input1.png" into "level.png" //Then draw your map using "level.png" in TiledMapEditor //Then just follow dpk' tutorial for rendering the map and it should work 

    Вот учебник dpk, о котором я упоминал, просто следуйте отсюда: http://dpk.net/2011/05/01/libgdx-box2d-tiled-maps-full-working-example-part-1/#p4

    Если приложение не сработает, но экран черный, просто увеличьте ширину и высоту окна просмотра.

    Счастливое картирование :)!