Я знаю, что этот вопрос задавался несколько раз, но я смотрел онлайн навсегда и не могу найти решение своей основной проблемы.
У меня есть SKPhysicsContact
, который запускает следующий код, когда 2 объекта вступают в контакт:
let ball = SKSpriteNode(imageNamed: "circle")
ball.position = CGPoint(x: self.frame.size.width / 3, y: self.frame.size.height / 3)
ball.size = CGSize(width: ballSize * 2, height: ballSize * 2)
ball.physicsBody = SKPhysicsBody(circleOfRadius: ballSize)
ball.physicsBody?.affectedByGravity = false
ball.physicsBody?.isDynamic = true
ball.physicsBody?.restitution = 1
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.friction = 0
ball.zPosition = 2
ball.physicsBody?.categoryBitMask = PhysicsCategoryBall
ball.physicsBody?.contactTestBitMask = PhysicsCategoryAll
ball.physicsBody?.collisionBitMask = PhysicsCategoryWall
ball.run(colorBlack)
self.addChild(ball)
При первом запуске кода SKPhysicsContact
создается SKSpriteNode
«шарик». Очевидно, что во второй раз, когда SKPhysicsContact
запускается, игра вылетает, потому что пытается снова добавить «ball», когда «ball» уже существует.
Без removeFromParent()
на шаре перед добавлением другого шара, как мне создать простой функционал / способ создания одного и того же SKSpriteNode
"шара" снова и снова каждый раз, когда я запускаю свой SKPhysicsContact
?
Приветствия:)