ich zur Zeit zwei SKSpriteNodes auf die jeweils andere habe wie so (Der weiße Teil ist ein und der braune runde Kreis Teil ist die andere):Prevent SKPhysicsBody Von Pushing SKSpriteNode Nach oben
Die weiße Der Teil befindet sich 1/3 auf dem runden braunen Sprite-Knoten. Auf dem Bild hat der braune runde Teil bereits einen SKPhysicsBody, wie es von der hellblauen Kontur um ihn herum gesehen wird. Wenn ich einen SKPhysicsBody um den oberen ovalischen weißen Teil hinzufüge, schiebt er es nach oben und nicht in die Position, die ich wollte.
Wie kann ich einen SKPhysics Körper beide Körper von Sprites coving haben aber nicht die Physik Körper schieben aufeinander, die der weiße Teil nach oben bewegen macht? Ich möchte, dass der weiße Teil in der Position bleibt, in der er sich im ersten Bild befand.
Danke für alle Hilfe!
Hier ist der Code, den ich für den SKPhysicsBody der verwendet:
// create, position, scale & add the round body
roundBody = SKSpriteNode(imageNamed: "roundBody")
roundBody.position = CGPoint(x: 207, y: 70)
roundBody.zPosition = 1
roundBody.xScale = 0.3
roundBody.yScale = 0.3
// add sprite node to view
self.addChild(roundBody)
// create, position, scale & add the head
theHead!.position = CGPoint(x: 207, y: roundBody.frame.maxY/1.15)
theHead!.zPosition = 2
theHead!.xScale = 0.3
theHead!.yScale = 0.3
// setting up a SKPhysicsBody for the round body
roundBody.physicsBody = SKPhysicsBody(circleOfRadius: roundBody.size.width/4)
roundBody.physicsBody!.dynamic = true
roundBody.physicsBody!.affectedByGravity = true
roundBody.physicsBody!.allowsRotation = false
roundBody.physicsBody!.pinned = false
// setting up a SKPhysicsBody for the head
theHead!.physicsBody = SKPhysicsBody(circleOfRadius: theHead!.size.width/2)
theHead!.physicsBody!.dynamic = true
theHead!.physicsBody!.affectedByGravity = false
theHead!.physicsBody!.allowsRotation = false
theHead!.physicsBody!.pinned = false
Ich habe versucht, die dynamische Eigenschaft von physicsBody auf false zu setzen und ja, das hat mein Problem behoben, dass es richtig positioniert wurde, aber jetzt kann ich keine Geschwindigkeit auf diese SKSpriteNodes anwenden. Irgendwelche Gedanken darüber, wie ich die Positionierung beibehalten kann, aber die Sprites über Geschwindigkeit, Impuls usw. bewegen kann? –
@AlanGuilfoyle - wäre es sinnvoll, theHead ein Kind von roundBody zu machen, damit sie sich zusammen bewegen? Sind sie immer zusammen, um ein größeres Sprite zu bilden? –
Ich bin nicht sicher, wie Vererbung in Spritekit zu tun ist. Der 'theHead' wäre ein Kind des 'runden Körpers', da sie immer zusammen sein würden.Allerdings konnte ich mein Problem mit einem SKPhysicsJointPin beheben –