到目前为止,我一直在开发一款 Sprite Kit 游戏,每次我在 xCode 中点击“播放”按钮时都会启动一个新游戏。现在我正在尝试在游戏中实现一个“新游戏”按钮,它将重置游戏并开始一个新游戏。
为了确保我的旧游戏场景消失并且没有任何悬空引用,我需要采取哪些步骤?
- 我需要在场景中进行任何类型的手动清理吗?(如在旧的 viewDidUnload 中)还是 ARC 会处理所有事情?
- 我是否需要明确删除我可能已从场景中添加到其超级视图的任何视图控制器视图?
- 是否有任何内置方法可以帮助我重置游戏?
这是我到目前为止一直在使用的。
-(void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
//set the view only once, because this method will be called again on rotation
if(!self.kkView.scene)
{
landscapeSize = self.kkView.bounds.size;
self.kkView.showsFPS = NO;
self.kkView.showsNodeCount = NO;
self.kkView.showsDrawCount = NO;
MyScene * gameScene = [MyScene sceneWithSize:landscapeSize];
gameScene.scaleMode = SKSceneScaleModeAspectFill;
IntroScene * scene = [IntroScene sceneWithSize:landscapeSize];
scene.gameScene = gameScene;
scene.scaleMode = SKSceneScaleModeAspectFill;
[self.kkView presentScene:scene];
}
}