以前用LIBGDX封装的BOX2D做demo时遇到了这个问题,LOG信息也看不出哪里错了,一直以为是LIBGDX的bug。最近才忽然想起可能是用SurfaceView导致线程不同步引起的,试了一下,给用到World.createBody的地方加了锁,就不出现BUG了。大家以后要谨记,BOX2D内部是不同步的。
关于SurfaceView的线程同步问题参考我另一篇文章:关于SurfaceView主线程与UI线程的问题
以前用LIBGDX封装的BOX2D做demo时遇到了这个问题,LOG信息也看不出哪里错了,一直以为是LIBGDX的bug。最近才忽然想起可能是用SurfaceView导致线程不同步引起的,试了一下,给用到World.createBody的地方加了锁,就不出现BUG了。大家以后要谨记,BOX2D内部是不同步的。
关于SurfaceView的线程同步问题参考我另一篇文章:关于SurfaceView主线程与UI线程的问题
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。