我的viewController中有一个CCGLView,在完成动画后,我试图用空场景替换CCGLView中的场景。问题是,在替换场景时,我可以观察到闪烁。我想避免它,我提供了下面的代码。我必须改变什么才能避免这种闪烁?
CC3Layer* layer=[[CC3Layer alloc]init];
CC3Scene* scene= (CC3Scene*)layer.scene;
scene.backdrop= [CC3Backdrop nodeWithColor:ccc4f(0.0/255.0, 0.0/255.0, 0.0/255.0, 0.0)];
[scene updateScene];
[self.director replaceScene:[layer asCCScene] withTransition:[CCTransition transitionCrossFadeWithDuration:1.0]];
[self.director stopAnimation];
一个问题是CC3Layer
的scene
属性返回的是CCScene
实例,而不是您期望的CC3Scene
实例。无论如何,在您的代码中,scene
属性将返回nil
,因为它尚未设置。请尝试使用cc3Scene
属性。
您还没有指出要在哪里运行此代码,但如果我将以下代码添加到CC3HelloWorld
模板应用程序的nodeSelected:byTouchEvent:at:
方法中,则转换运行平稳,没有任何闪烁:
CC3Layer* layer=[[CC3Layer alloc]init];
CC3Scene* scene= layer.cc3Scene;
scene.backdrop= [CC3Backdrop nodeWithColor:ccc4f(0.0, 0.5, 0.5, 1.0)];
[CCDirector.sharedDirector replaceScene:[layer asCCScene] withTransition:[CCTransition transitionCrossFadeWithDuration:1.0]];
票据