我使用Sprite工具包框架来创建游戏。 我的第一个场景是MyScene.My Scene是一个菜单,但我想点击开始时从故事板切换到第一个视图。
这是我切换到另一个SKScene的方式
Scene001 *start = [[Scene001 alloc] initWithSize:self.size];
SKTransition *reveal = [SKTransition fadeWithColor:[UIColor clearColor] duration:0.5];
[self.scene.view presentScene: start transition: reveal];
现在的问题是如何切换到故事板场景,反之亦然。
答案 0 :(得分:0)
我知道这已经过时了,但只是想让某人遇到它并需要答案:
我在游戏中所做的是让我的GameViewController成为SKScene的代表。当用户完成SKScene时,我在GameViewController中调用了我的委托函数,它只执行performSegueWithIdentifier。 你创建场景的viewController可以运行segue。因此,您需要一种方法从SKScene返回它。只需使您的SKScene成为委托,当您的viewController创建它时,设置委托。然后,当您想要切换时,请调用委托功能。
这是我创建场景的GameViewController:
- (void)viewWillAppear:(BOOL)animated {
SKView * skView = (SKView *)self.view;
if (!skView.scene) {
MyScene *scene = [MyScene sceneWithSize:self.view.bounds.size];
scene.delegate = self;
[skView presentScene:scene];
}
}
// A delegate function
- (void)onExitGame {
[self performSegueWithIdentifier:@"GoToNextScene" sender:self];
}
当你准备好切换故事板时,从我的MyScene调用委托函数:
if (self.delegate) {
self.delegate.onExitGame();
}