как создать загрузочный экран в libgdx?

У меня есть класс GameScreen, который отображает мою игру. но прежде чем начать рендеринг игры, необходимо прочитать файлы и инициализировать их, что требует много времени.

Поэтому мне нужно показать/рендерить другой класс Screenс именем LoadingScreen, чтобы потратить некоторое время и одновременно прочитать мои файлы и выполнить процесс инициализации для моего GameScreen, а после завершения инициализации изменить экран, вызвав setScreen(gameScreen).

Мне нужно использовать поток для выполнения этой параллельной работы, теперь проблема в том, что если я использую поток для чтения файлов и инициализации; При переключении на GameScreenopenGl выдает мне эту ошибку:

javax.media.opengl.GLException: Error: no OpenGL buffer object appears to be bound to target 0x8892
at com.sun.opengl.impl.GLBufferSizeTracker.setBufferSize(GLBufferSizeTracker.java:118)

Я знаю, что не оба потока одновременно используют графические ресурсы.

Я обнаружил, что проблема связана с Meshes. Эта ошибка возникает при инициализации Mesh в потоке инициализатора и рендеринге в основном потоке. Но я не знаю, как это решить.

У вас есть идеи по решению этой проблемы?

10
задан Nicol Bolas 18 August 2012 в 09:02
поделиться