SpriteKit:通过过渡呈现初始场景
SpriteKit: Presenting the initial scene wth a transition
我在我的游戏场景之间创建了多个转换,所以我不确定为什么这段代码不起作用。
在我的 GameViewController 中,我只是将我的 TitleScene 设置为显示为下一个场景,但我希望它淡入。我已经在我的 touchesBegan 中成功完成了此操作。
代码如下:
@implementation GameViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = NO;
skView.showsNodeCount = NO;
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = YES;
// Create and configure the scene.
SKScene * scene = [TitleScene sceneWithSize:skView.frame.size];
scene.scaleMode = SKSceneScaleModeResizeFill;
// Present the scene.
SKTransition *transition = [SKTransition fadeWithColor:[SKColor blackColor] duration:3.6];
[skView presentScene:scene transition:transition];
}
你不能使用 SpriteKit 来呈现带有过渡的初始场景,因为 SKView
(根据定义)不显示初始场景之前的任何场景,所以从它的角度来看,没有任何东西可以过渡来自.
大概,从您的角度来看,您想从用户在 SpriteKit 启动之前看到的任何内容淡入您的场景——也许是您的应用程序的启动屏幕?一个常见的策略是让初始故事板场景包含一个 UIImageView
,其中包含与启动屏幕相同的图像,位于 SKView
之上。当您准备好开始游戏时,使用 UIView
animateWithDuration:animations:completion:
淡出图像视图并将其从视图层次结构中删除,您的 SKView
将显示在下方。
我在我的游戏场景之间创建了多个转换,所以我不确定为什么这段代码不起作用。
在我的 GameViewController 中,我只是将我的 TitleScene 设置为显示为下一个场景,但我希望它淡入。我已经在我的 touchesBegan 中成功完成了此操作。
代码如下:
@implementation GameViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = NO;
skView.showsNodeCount = NO;
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = YES;
// Create and configure the scene.
SKScene * scene = [TitleScene sceneWithSize:skView.frame.size];
scene.scaleMode = SKSceneScaleModeResizeFill;
// Present the scene.
SKTransition *transition = [SKTransition fadeWithColor:[SKColor blackColor] duration:3.6];
[skView presentScene:scene transition:transition];
}
你不能使用 SpriteKit 来呈现带有过渡的初始场景,因为 SKView
(根据定义)不显示初始场景之前的任何场景,所以从它的角度来看,没有任何东西可以过渡来自.
大概,从您的角度来看,您想从用户在 SpriteKit 启动之前看到的任何内容淡入您的场景——也许是您的应用程序的启动屏幕?一个常见的策略是让初始故事板场景包含一个 UIImageView
,其中包含与启动屏幕相同的图像,位于 SKView
之上。当您准备好开始游戏时,使用 UIView
animateWithDuration:animations:completion:
淡出图像视图并将其从视图层次结构中删除,您的 SKView
将显示在下方。