Here - это видео о проблеме, которую я имею. Как вы можете видеть в видео, я перемещаю серый шар, чтобы попытаться столкнуться с красным шаром. Когда оба объекта сталкиваются, не происходит подпрыгивания, красный шар просто перемещается. Я пробовал играть с плотностью красных шаров, например, с плотностью красных шаров 0.00001. В столкновении не было никакой разницы.При перетаскивании объекта при столкновении с другим объектом в наборе спрайтов не происходит отскока
Как я могу изменить поведение столкновений, так что есть подпрыгивание?
Вот свойство серого шара:
func propertiesGrayBall() {
gray = SKShapeNode(circleOfRadius: frame.width/10)
gray.physicsBody = SKPhysicsBody(circleOfRadius: frame.width/10)
gray.physicsBody?.affectedByGravity = false
gray.physicsBody?.dynamic = true
gray.physicsBody?.allowsRotation = false
gray.physicsBody?.restitution = 1
}
Вот свойство красного шара:
func propertiesRedBall {
let redBall = SKShapeNode(circleOfRadius: self.size.width/20
redBall.physicsBody = SKPhysicsBody(self.size.width/20)
redBall.physicsBody?.affectedByGravity = false
redBall.physicsBody?.dynamic = true
redBall.physicsBody?.density = redBall.physicsBody!.density * 0.000001
redBall.physicsBody?.allowsRotation = false
redBall.physicsBody?.restitution = 1
}
Вот как я двигаюсь серый шар.
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
if fingerIsOnGrayBall {
let touch = touches.first
var position = touch!.locationInView(self.view)
position = self.convertPointFromView(position)
grayBall.position = position
}
}
Основные редактирует Шарик первоначально имел вложения. Я удалил их, чтобы упростить проблему. Вот почему комментарии могут не совпадать с кодом.
Не могли бы вы показать нам код для физического соединения между серым баллом л и черный? Там может быть что-то, что не позволяет ему реагировать на физическое столкновение. – Gliderman
@Gliderman Я только что обновил код! Спасибо за ваш ответ. – Sami
Интересно, что вы говорите, что изменение реституции на 1 не изменилось. Вы пытались установить реституцию на true, а затем blackBall.physicsBody? .usePreciseCollisionDetection = true? Вы очень быстро перемещаете мяч, поэтому, возможно, это может решить проблему. – theprole