2016-05-14 9 views
0

У меня есть прямоугольный узел, я хочу, чтобы этот узел вел себя как шар пула, когда он ударялся о стену, что означает отскок стены под обратным углом, бассейн, вот что я сделал: 1- Добавлен physicsBodyrectangleOfSize, поведение не такое, как предполагалось, узел ударил по стене, а затем движется вдоль него, а не подпрыгивает под правильным углом., имеющий 2 физических тела, меняет поведение узла

2 Добавлено physicsBodycircleOfRadius, поведение прекрасное, но узел не круглый, это прямоугольник.

3 Наконец-то нашлось наиболее логичное решение, я добавил два тела circleOfRadius, один в верхней части узла и один внизу, таким образом, я должен получить поведение подпрыгивания, которое я хочу с верхней, и все еще давать узел - практическое физическое тело для столкновений с нижним, но поведение похоже на физическое тело в форме прямоугольника, а не на круглую форму.

let circle = SKPhysicsBody(circleOfRadius: size.width/2, center: CGPoint(x: 1, y: size.height/2)) 
let circle2 = SKPhysicsBody(circleOfRadius: size.width/2, center: CGPoint(x: 1, y: -size.height/3)) 
physicsBody = SKPhysicsBody(bodies: [circle, circle2]) 

Похоже тело нижний круг влияет на поведение, я пытался играть со своими свойствами (allowsRotation, mass и т.д.), но это ничего не изменило.

Любое представление о том, как создать прямоугольный узел, ведет себя физически, как круг в форме?

+0

С реституцией = 1,0 то же самое? –

ответ

0

Ознакомьтесь с разделом "Working with Collision and Contacts" в Apple Docs для SKPhysicsBody. В основном вы определяете collisionBitMask для своего окружного узла, чтобы сталкиваться только со своими стенами и узлом прямоугольника, чтобы сталкиваться только с тем, с чем вы хотите столкнуться.