2016-05-14 12 views
0

Ich habe einen rechteckigen Knoten, ich möchte, dass dieser Knoten sich wie ein Pool Ball verhält, wenn er die Wand trifft, was bedeutet, dass die Wand im umgekehrten Winkel springt, genau wie der Pool Ball, hier ist, was ich getan habe: 1- Added physicsBodyrectangleOfSize, ist das Verhalten nicht so, wie es angenommen wurde, der Knoten die Wand und dann bewegt sich entlang es anstelle der Prellen im richtigen Winkel.mit 2 Physikkörpern verändert das Verhalten des Knotens

2- hinzugefügt physicsBodycircleOfRadius, das Verhalten ist perfekt, aber der Knoten ist nicht kreisförmig, es ist Rechteck.

3 - Schließlich gefunden die logischste Lösung, fügte ich zwei Körper circleOfRadius, eine an der Spitze des Knotens und eine an der Unterseite, auf diese Weise sollte ich das Bouncing-Verhalten mit dem Top bekommen, und immer noch geben der Knoten ist ein praktischer physikalischer Körper für Kollisionen mit dem unteren, aber das Verhalten ist eher wie der rechteckige Physikkörper als der kreisförmige.

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]) 

Scheint, wie der untere Kreis Körper das Verhalten auswirkt, habe ich versucht, mit seinen Eigenschaften zu spielen (allowsRotation, mass, etc), aber es hat sich nichts geändert.

Gibt es eine Idee, wie man einen rechteckigen Knoten physisch wie ein kreisförmiger Knoten verhält?

+0

Mit restitution = 1.0 ist das gleiche? –

Antwort

0

Überprüfen Sie den Abschnitt für "Working with Collision and Contacts" in der Apple-Dokumentation für einen SKPhysicsBody. Im Grunde genommen müssen Sie eine collisionBitMask definieren, damit Ihr Kreisknoten nur mit Ihren Wänden kollidiert und Ihr Rechteckknoten nur mit dem kollidiert, mit dem Sie kollidieren wollen.