Ich habe Probleme mit Hinzufügen und Entfernen meiner SKPhysicsJointPin in der TouchseBegan-Funktion. Das Problem ist, dass mein Join in der Funktion didMoveToView deklariert wird, weil es basierend auf den darin enthaltenen Ausdrücken positioniert werden muss.Verwirrendes Problem beim Hinzufügen und Entfernen von SKPhysicsJointPin bei Berührung
Das kann ich nicht auf die SKPhysicsJoint in der TouchseBegan-Funktion verweisen, die für das, was ich versuche, mit meinem Projekt zu tun ist. Irgendwelche Lösungen oder Vorschläge?
Code:
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
var head = SKSpriteNode(imageNamed: "crown.png")
var headTexture = SKTexture(imageNamed: "crown.png")
var neck = SKSpriteNode(imageNamed: "throat.png")
var neckTexture = SKTexture(imageNamed: "throat.png")
override func didMoveToView(view: SKView) {
head.position.x = torso.position.x - 1
head.position.y = torso.position.y + 77
head.physicsBody = SKPhysicsBody(texture: headTexture, size: head.size)
head.physicsBody!.categoryBitMask = ColliderType.part.rawValue
head.physicsBody!.contactTestBitMask = ColliderType.part.rawValue
head.physicsBody!.collisionBitMask = ColliderType.part.rawValue
self.addChild(head)
neck.position.x = torso.position.x
neck.position.y = torso.position.y + 44
neck.physicsBody = SKPhysicsBody(texture: neckTexture, size: neck.size)
neck.physicsBody!.categoryBitMask = ColliderType.mjoint.rawValue
neck.physicsBody!.contactTestBitMask = ColliderType.mjoint.rawValue
neck.physicsBody!.collisionBitMask = ColliderType.mjoint.rawValue
self.addChild(neck)
let headToNeck = SKPhysicsJointPin.jointWithBodyA(head.physicsBody!, bodyB:neck.physicsBody!, anchor:CGPointMake(head.position.x, head.position.y - 20.8))
headToNeck.shouldEnableLimits = true
self.physicsWorld.addJoint(headToNeck)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.physicsWorld.removeJoint(headToNeck)
}
}
Sie das Gelenk in 'touchesBegan' entfernen können mit' wenn Gelenk lassen = head.physicsBody .joints.first {self.physicsWorld.removeJoint (Joint)} ' – 0x141E