我有一个 UIView 类型的主视图。此视图有两个仅横向的 skview(左和右)。所有视图和场景均设置为黑色背景。
我从隐藏的两个 skviews 开始。主屏幕在屏幕两侧显示问题。如果答案不正确,我将场景设置为效果,然后启用该效果并取消隐藏 skview(左或右)。效果会显示几秒钟,然后我[self.leftView presentScene:nil];
用 rightView 禁用它。然后我再次隐藏视图。
问题在于,在显示场景时,在场景以黑色背景适当渲染之前,会有短暂的白色视图闪烁。事实上,这就是为什么我开始隐藏skviews,就好像我不这样做一样,尽管我将其设置为黑色,但它们会以较浅的背景显示。
如何在没有较浅背景颜色的闪光的情况下显示这些场景?
一些代表性代码:
self.fireSceneLeft = [FireScene sceneWithSize:self.leftView.bounds.size];
self.fireSceneLeft.scaleMode = SKSceneScaleModeAspectFill;
self.fireSceneLeft.backgroundColor = [UIColor blackColor];
[self.leftView presentScene:self.fireSceneLeft];
[self.leftView setHidden:NO];
至于场景效果本身:
@implementation FireScene
-(SKEmitterNode *)fireEffect
{
SKEmitterNode *emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"FireEffect" ofType:@"sks"]];
emitter.position = CGPointMake(150,80);
emitter.name = @"fire";
emitter.targetNode = self.scene;
emitter.numParticlesToEmit = 2;
return emitter;
}
-(void)update:(CFTimeInterval)currentTime {
[self addChild:[self fireEffect]];
}
@end