如何解散SKScene?
当我完成我的SKScene是否有一种方法来解散我的SKScene类SKScene?
如果没有在我的ViewController中显示我的SKScene [skView presentScene:theScene];
有没有办法重新启动现场或删除从我的SKView?
SKScene类参考和SKView类参考没有帮助。
更新:
下面的代码从我的SKView中删除我的场景[yourSKView presentScene:nil];
但是当我回到我的视图控制器时,场景仍然在后台运行。 当游戏结束时,我总是可以暂停它,然后我回到我的视图控制器(菜单),但我想知道是否有另一种方法,然后像彻底删除它一样暂停它?
-(void)endTheGame { [highscoreLabel removeFromSuperview]; NSLog(@"Game Over"); //would like to end here before calling the below method in my view controller [self.delegate mySceneDidFinish:self]; }
您可以使用:
[yourSKView presentScene:nil];
去除现场。
遇到了类似的问题,我偶然发现了你的问题,因为没有人给出正确的答案,所以我解决了这个问题:
- 在我的场景中,我叫了两条线
[self removeFromParent]; [self.view presentScene:nil];
- 在我的控制器 (显示SKScene的控制器)中,我改变了Apple的模板代码,这是从viewDidLoad创build和呈现我的场景,以创build和呈现我的场景viewWillAppear,只有当视图的场景是零
这里是我的Swift代码,即使你使用Objective C,你也会明白它的作用; 关键是“如果skView.scene ==零”testing:
override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) let skView = self.view as SKView if skView.scene == nil { let scene = GameScene(size:skView.bounds.size) scene.controller = self skView.ignoresSiblingOrder = true scene.scaleMode = .AspectFill skView.presentScene(scene) } }
“你不能从场景中”回到视图控制器“,场景是视图,视图控制器控制和显示视图,使用视图控制器来改变视图,记住视图控制器本身不是视图。 -Wharbio
最好的解决scheme是创build另一个视图控制器。 这个视图控制器将是我的菜单。 然后另一个视图控制器将作为skscene的主机。
在我的情况下,然后使用我的菜单viewcontrollerclosures显示在skview中的viewcontroller。
从你的SKScene
,你可以简单地做[self.view presentScene:aNewScene]
来呈现另一个场景
我通过在我的视图控制器中使用此块完全删除场景:显然,您将需要声明您的大小和“newSKview”
SKView * skView = (SKView *)self.view; SKScene *newScene = [[newSKView alloc]initWithSize:size]; newScene.scaleMode = SKSceneScaleModeAspectFill; SKScene *oldScene=(skView.scene); [oldScene removeFromParent]; [skView presentScene:newScene];
这对我来说很好。 我的场景没有保留或强大。
也许我的变体会有帮助:
[[self.scene childNodeWithName:@"YourChildNodeName"] removeFromParent];
- 用Sprite Kit创build水(stream体)表面
- 如何使用Sprite Kit减慢运行SKAction followPath的SKSpriteNode以获得慢动作效果?
- SKView和SKScene有什么区别?
- Spritekit:如何使游戏屏幕视图向上移动作为节点“跳”沿Y轴?
- SpriteKit视图抛出NSInvalidArgumentException
- iOS实际设备在节点上运行时获取EXC_BAD_ACCESS
- Sprite Kitpipe脚关节似乎具有不正确的锚点
- 如何实现SKActionTimingFunction?
- NSGenericException原因Collection <NSConcreteMapTable:xxx>