Ich habe derzeit zwei SKSpriteNodes, denen ich SKPhysicsBodies hinzugefügt habe. Wenn sie keinen SKJ-Punkt haben, kollidieren sie wie erwartet. Sobald ich den SKPhysicsJoint hinzufüge, gehen sie einfach durcheinander. Jede Verbindung, die ich hinzufüge, funktioniert richtig, aber SKPhysicsJointLimit begrenzt nur das Ausmaß, in dem die Knoten voneinander abweichen können, und nicht, wie nahe sie kommen können. Wie kann ich das beheben?SKPhysicsBodies kollidieren nicht nach dem Hinzufügen von SKPhysicsJointLimit
Hier sind Code, den ich für die gemeinsame bin mit:
let joint = SKPhysicsJointLimit.joint(withBodyA: object1.physicsBody!, bodyB: object2.physicsBody!, anchorA: CGPoint(x: object1.position.x + iconController.position.x, y: object1.position.y + iconController.position.y), anchorB: CGPoint(x: object2.position.x + iconController.position.x, y: object2.position.y + iconController.position.y))
joint.maxLength = screen.height * 0.4
physicsWorld.add(joint)
PhysicsBody beiden Knoten:
self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2)
self.physicsBody?.allowsRotation = false
self.physicsBody?.friction = 0
self.physicsBody?.mass = 0.1
Ich habe es mit verschiedenen Werten für die oben genannten Modifikationen des SKPhysicsBody getestet und es führt das Gleiche.
Ich hatte zuvor untersucht, was passieren könnte, indem ich die Physik wie vorgeschlagen zeige; Allerdings zeigte die Physik nur, was ich dachte, dass es zeigen sollte. Beide Anker waren korrekt in der Mitte jedes Knotens positioniert, mit einer Linie, die das Gelenk zwischen ihnen anzeigt. Wiederum funktioniert das Gelenk so, wie ich es nach außen möchte, aber wenn die Knoten sich nach innen bewegen, kollidieren sie einfach nicht. – mhillsman
Also kollidierte dein Objekt gut vor der SKPhysicsJoint-Erweiterung? Ich frage es, weil Sie in Ihrer Frage keinen Code melden. –
Ja, sie kollidierten gut. Sogar wenn das Gelenk hinzugefügt wird, kollidieren sie normalerweise mit allen Knoten außer einander. Ich füge meiner Frage einen Teil meines Codes hinzu. – mhillsman