大佬教程收集整理的这篇文章主要介绍了android – BaseGameActivity.runOnUpdateThread()与Entity.registerUpdateHandler(),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用Sprite.detachSelf()从场景中删除一个Sprite.在本例中,教程说必须在使用BaseGameActivity.runOnupdateThread()的更新线程中调用此方法.但是使用这个解决方案,我必须将activity对象传递给想要使用runOnupdateThread()的每个对象.嗯……我不喜欢它.
我的问题是,如果我在Entity中创建一个RunnableHandler对象并使用registerupdateHandler()注册它,并将新的Runnable添加到RunnableHandler,此解决方案是否与runOnupdateThread()功能相同.这个Runnable是否在update Thread中执行?
/* MySprite is attached to a Scene object */ public class MySprite extends Sprite { private final RunnableHandler updatE_HANDLER = new RunnableHandler(); public MySprite() { registerupdateHandler(updatE_HANDLER); } /* called when the sprite has to be removed from scene */ public void removeMyself() { Runnable r = new Runnable() { public void run() { detachSelf(); } }; updatE_HANDLER.postRunnable(r); } }
>显示的行,获取实体计数= 19(来自日志)
>其中一个entity.get(i).onupdate()调用removeMyself()
> detachSelf的runnable排队.
>在下一个entity.get(i).onupdate()将导致updateHandler通过onUpdate运行(updatehandlers在onManagedupdate中运行)
> detachSelf从父列表(调用者)中删除子项(其中条目计数仍为19,但mChildren / entities的长度现为18)
只是从查看代码的理论……我认为开始得到答案的一个好点是在Entity中查看循环并查看循环期间是否修改了“实体”. (注意:’最终实体’只是阻止重新分配变量,而不是修改列表)
以上是大佬教程为你收集整理的android – BaseGameActivity.runOnUpdateThread()与Entity.registerUpdateHandler()全部内容,希望文章能够帮你解决android – BaseGameActivity.runOnUpdateThread()与Entity.registerUpdateHandler()所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。