2015-03-28 4 views
1

Я пытаюсь внедрить веревку в Swift SpriteKit и добавить физику к ней, позиция хороша для всех, но они не будут прикрепляться, когда я нажимаю игру, все они падают, кроме первой, которая является «держателем». Вот мой код:Swift SpriteKit SKPhysicsJointPin

// create rope holder 
    let chainHolder = SKSpriteNode(imageNamed: "chainHolder") 

    chainHolder.position.y = self.frame.maxY - chainHolder.size.height 

    chainHolder.physicsBody = SKPhysicsBody(circleOfRadius: chainHolder.size.width/2) 
    chainHolder.physicsBody?.dynamic = false 
    //chainHolder.physicsBody?.allowsRotation = true 

    chains.append(chainHolder) 
    addChild(chainHolder) 

    // add each of the rope parts 
    for i in 0...5 { 

     let chainRing = SKSpriteNode(imageNamed: "chainRing") 
     let offset = chainRing.size.height * CGFloat(i + 1) 
     chainRing.position = CGPointMake(chainHolder.position.x, chainHolder.position.y - offset) 
     chainRing.name = String(i) 

     chainRing.physicsBody = SKPhysicsBody(rectangleOfSize: chainRing.size) 
     //chainRing.physicsBody?.allowsRotation = true 

     chains.append(chainRing) 
     addChild(chainRing) 
    } 

    // set up joints between rope parts 
    for i in 1...5 { 

     var nodeA = chains[i - 1] 
     var nodeB = chains[i] 
     var joint = SKPhysicsJointPin.jointWithBodyA(nodeA.physicsBody, bodyB: nodeB.physicsBody, 
      anchor: CGPointMake(CGRectGetMidX(nodeA.frame), CGRectGetMinY(nodeA.frame))) 

     physicsWorld.addJoint(joint) 
    } 

ответ

0

я узнал, что эта проблема, потому что ставили точку привязки для сцены в (0.5, 0.5). Если я оставлю его в (0, 0), все будет в порядке.

Смежные вопросы