2016-04-25 8 views
0

Die Frage könnte auch lauten: Wie spiegelt man einen gepinnten SpriteKit-Knoten entlang einer anderen Knotenachse?Spiegeln SpriteKit-Knoten, der Kinder pinned hat

Ich entwickle ein 2D-Plattform-Spiel mit SpriteKit. Mein Held ist ein SKNode, der als Behälter für alle Körperteile dient.

hero:SKNode 
--- leftArm:SKSpriteNode 
--- rightArm:SKSpriteNode 
--- body:SKSpriteNode 

leftArm rightArm und werden an den Körperknoten gepinnten (durch SKPhysicsJointPin).

Ich möchte meinen Helden horizontal spiegeln, wenn er seine Richtung ändert. Wenn ich xScale auf -1 ändere, wird alles gespiegelt, aber die gepinnten Knoten werden entlang ihrer eigenen Achse gespiegelt und nicht entlang der Körperachse/des Mittelpunkts der Elternknoten.

Ich habe versucht, die Position der fixierten Knoten manuell einzustellen, aber ohne Wirkung (scheint nicht für gepinnte Knoten zulässig sein).

Wie kann ich meine fixierten Knoten entlang der Körperknotenachse spiegeln oder ihre Position unabhängig ändern?

Antwort

0

Ich fand einen Ansatz, der für mich funktionierte, die Position eines fixierten Knotens unabhängig zu ändern.

  1. Passen Sie Ihre Abonnenten Knoten Position
  2. Get Joint Ihre gemerkte Knoten (s) (durch pinnedNode.physicsBody.joints)
  3. Entfernen Sie das Gelenk von Ihrem Physics World
  4. Erstellen Sie eine neue Verbindung mit dem gleichen Parameter wie die entfernte und fügen Sie es der Welt hinzu