SKPhysicsJointLimit EXC_BAD_ACCESS?
Я использую Sprite Kit (iOS), но всякий раз, когда я пытаюсь добавить SKPhysicsJointLimit
к physicsWorld
приложение вылетает с EXC_BAD_ACCESS (code=1, address=0xc0)
, Другие типы суставов работают нормально, что меня смущает. Вот пример того, что падает:
var node1 = SKSpriteNode(color: SKColor.blueColor(), size: CGSize(width: 50, height: 50))
node1.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: 50, height: 50))
self.addChild(node1)
var node2 = SKSpriteNode(color: SKColor.blueColor(), size: CGSize(width: 50, height: 50))
node2.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: 50, height: 50))
self.addChild(node2)
var joint = SKPhysicsJointLimit()
joint.maxLength = 1000
joint.bodyA = node1.physicsBody
joint.bodyB = node2.physicsBody
self.physicsWorld.addJoint(joint)
Когда я заменяю SKPhysicsJointLimit()
с SKPhysicsJointFixed()
(и удалите настройку линии maxLength
) или какой-либо другой совместный тип, код работает как ожидалось.
Я новичок в Sprite Kit, есть идеи, как решить эту проблему?
1 ответ
Приложение падает, потому что вы не устанавливаете свойства точки привязки соединения. Из документов, anchorA
является
Точка соединения на первом теле в системе координат сцены.
а также anchorB
является
Точка соединения на втором теле в системе координат сцены.
Вот пример того, как создать SKPhysicsJointLimit
объект с физическими телами и опорными точками в качестве аргументов:
let joint = SKPhysicsJointLimit.jointWithBodyA(node1.physicsBody!, bodyB: node2.physicsBody!, anchorA: node1.position, anchorB: node2.position)
joint.maxLength = 1000
physicsWorld.addJoint(joint)
Я не уверен, если вы не можете установить точки привязки напрямую.