タイプUIViewのメインビューがあります。このビューには、横向きのみの 2 つの skview (左右) があります。すべてのビューとシーンは、黒の背景に設定されています。
2 つの skview を非表示にして始めます。メイン画面では、画面の両側に質問が表示されます。答えが間違っている場合は、シーンをエフェクトに設定し、そのエフェクトを有効にして、skview (左または右) を再表示します。効果は数秒間表示された後[self.leftView presentScene:nil];
、rightView で同じことをして無効にします。次に、ビューを再び非表示にします。
問題は、シーンが表示されるときに、シーンが黒い背景で適切にレンダリングされる前に、ビューが白い色で一瞬点滅することです。実際、これが、黒に設定しているにもかかわらず、明るい背景で表示されないかのように、最初からskviewを非表示にすることにした理由です。
明るい背景色のフラッシュなしでこれらのシーンを表示するにはどうすればよいですか?
いくつかの代表的なコード:
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