これまでは、xCode の [再生] ボタンを押すたびに新しいゲームが開始される Sprite Kit ゲームに取り組んできました。今、ゲームをリセットして新しいゲームを開始する「新しいゲーム」ボタンをゲーム内に実装しようとしています。
古いゲーム シーンを確実に削除し、ダングリング リファレンスがないことを確認するには、どのような手順を踏む必要がありますか?
- シーン内で何らかの手動クリーンアップを行う必要はありますか? (古い 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];
}
}