24
2014
07

Libgdx多线程与渲染线程

大部分平台都会有主线程与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前执行。

« 上一篇下一篇 »

评论列表:

1.迅雷ID  2014-11-14 21:02:21 回复该留言
不是很懂,路过支持下xunleid.com

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。