首页 > 代码库 > Libgdx多线程与渲染线程

Libgdx多线程与渲染线程

http://www.leestorm.com/post/115.html

——————————————————————————————————————————————————————————‘

大部分平台都会有主线程与UI线程同步的问题,Libgdx与androidUI线程进行交互使用Android的Message机制即可,比如弹出对话框,通知等。

但 Libgdx的大部分逻辑都依赖渲染线程,比如资源加载,绘制,舞台创建等。当一些情况下在其它线程要进行渲染线程才能完成的工作时,直接在其它线程进行 操作,会抛出java.lang.IllegalArgumentException: Error compiling shader错误。比如你的安卓Libgdx游戏要接入支付宝SDK,支付宝SDK支付回调是单独的线程,当你要实现类似“支付完成切换Screen”这 种操作时,就需要用到Gdx.app.postRunnable,如:

                Gdx.app.postRunnable(new Runnable()

                {

                       @Override

                       public void run()

                       {

                              GameMain.instance.setCurScreen(new ModSeletScreen());

                              dispose();

                       }

                });

Runnable里面的语句将会在渲染线程中,并在下一次render前执行。

Libgdx多线程与渲染线程