タッチすると女の子が上に跳ねるプログラムが描きたいです。
このプログラムだとAttemped to add a SKNode which already has a parent
というエラーが出ます。二重にlet Girl = SKSpriteNode(imageNamed: "Girl")
を呼び出すことになるからだと思いますが。対処法がわかりません。
class GameScene: SKScene { let Girl = SKSpriteNode(imageNamed: "Girl") override func didMove(to view: SKView) { createGirl() self.physicsWorld.gravity = CGVector(dx: 0, dy: -10) } func createSwimingGirl(){ Girl.size = CGSize(width: self.frame.width/8, height: self.frame.width/8) Girl.position = CGPoint(x: self.frame.width/10*3, y: self.frame.height/2) Girl.physicsBody = SKPhysicsBody(rectangleOf: Girl.size) Girl.physicsBody?.categoryBitMask = PhysicsCatagoly.Girl Girl.physicsBody?.collisionBitMask = PhysicsCatagoly.Ground Girl.physicsBody?.affectedByGravity = true Girl.physicsBody?.allowsRotation = false self.addChild(Girl) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch in touches{ let location = touch.location(in: self) SwimingGirl.physicsBody?.velocity = CGVector(dx: 0, dy: 0) SwimingGirl.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 50)) } }
あなたの回答
tips
プレビュー