以下の関数を使ってシーンを移動させているのですが
print("deinit")が2回呼ばれてしまいます。
以下の方法もこのサイトで教えてもらったのですが、どう修正したら良いか解らないので質問させてもらいました。よろしくお願いいたします。
func nextStage(stage:String,waitTime:Double){ let bundleName = Bundle.main.infoDictionary?[kCFBundleNameKey as String] as? String let fullName = "\(bundleName!).\(stage)" let sceneType = NSClassFromString(fullName) as! SKScene.Type var scene = sceneType.init(size: self.size) scene = sceneType.init(fileNamed: stage)! scene.scaleMode = .aspectFill let tr = SKTransition.fade(withDuration: waitTime) self.view!.presentScene(scene,transition: tr) }
GameSceneから
import SpriteKit class GameScene: SKScene{ deinit { print("deinit") } var stage = 0 override func didMove(to view: SKView) { stage = 1 let wait = SKAction.wait(forDuration: 3) self.run(wait, completion: { if self.stage == 1 { self.nextStage(stage: "GameScene1", waitTime: 1.0) } else if self.stage == 2 { self.nextStage(stage: "GameScene2", waitTime: 1.0) } }) }
あなたの回答
tips
プレビュー