ゲームを作っていて、ある画面で線を引くのですが、画面遷移をして、もう一度同じ画面に戻った際にRemoveされておらず前の線が残ってしまっています。どうしたら消せるのでしょうか?
Swift
1class GameScene: SKScene { 2 var curve: SKShapeNode! 3 override func didMove(to view: SKView) { 4 let path = CGMutablePath() 5 path.move(to: CGPoint(x: 0, y: 0)) 6 path.addLine(to:CGPoint(x: self.frame.width, y: self.frame.height)) 7 path.closeSubpath() 8 curve = SKShapeNode(path: path) 9 curve.strokeColor = .white 10 curve.lineWidth = 4 11 curve.alpha = 0.2 12 curve.zPosition = 1.0 13 curve.name = "curve" 14 curve.isUserInteractionEnabled = false 15 self.addChild(curve) 16 } 17 18 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 19 //ここで消しているのですが、のこってしまいます 20 self.removeChildren(in: [curve]) 21 let scene = SecondScene(size: self.size) 22 scene.scaleMode = SKSceneScaleMode.resizeFill 23 self.view!.presentScene(scene) 24 } 25}
もう一つのSceneはtapで遷移するだけのシンプルなものです。これで戻ると線が残ってしまいます。
Swift
1class SecondScene: SKScene { 2 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 3 let scene = GameScene(size: self.size) 4 scene.scaleMode = SKSceneScaleMode.resizeFill 5 self.view!.presentScene(scene) 6 } 7}
初期画面で引いたライン
他の画面に遷移して戻ってきた際に残っているライン
線の長さも変わってしまっていますし、なぜremoveできていないのか全然わからない状態です。
何か特殊な消し方が必要なのでしょうか?
回答1件
あなたの回答
tips
プレビュー