SpriteKit联合物理变化物理体

时间:2015-09-01 05:06:04

标签: xcode swift sprite-kit skphysicsbody

我正在使用spritekit中的联合方法,但是一旦我加入两个精灵,它似乎改变了物理体。我有一个角落连接的两个矩形,当它们折叠时,我希望蓝色矩形位于白色三角形的顶部,但这就是结果。我如何维护他们的物理机构,以便它们不重叠? enter image description here enter image description here

import SpriteKit

class GameScene: SKScene {

let character = SKSpriteNode(color: SKColor.whiteColor(), size: CGSizeMake(150, 30))
let character2 = SKSpriteNode(color: SKColor.blueColor(), size: CGSizeMake(150, 30))
let character3 = SKSpriteNode(color: SKColor.greenColor(), size: CGSizeMake(50, 300))

 let screenSize: CGRect = UIScreen.mainScreen().bounds


override func didMoveToView(view: SKView) {

  //  let scene = GameScene(size: SKView.frame)


    let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
    borderBody.friction = 5
    self.physicsBody = borderBody

    self.physicsWorld.gravity = CGVectorMake(0.0, -1.0)

    character.position = CGPointMake(550, 400)
    character2.position = CGPointMake(400, 400)
    character3.position = CGPointMake(400, 100)

    character.physicsBody = SKPhysicsBody(rectangleOfSize: character.size)
    character2.physicsBody = SKPhysicsBody(rectangleOfSize: character2.size)
    character3.physicsBody = SKPhysicsBody(rectangleOfSize: character3.size)

    self.character.physicsBody!.dynamic = true
    self.character2.physicsBody!.dynamic = true
    self.character3.physicsBody!.dynamic = true

    self.addChild(character)
    self.addChild(character2)
    self.addChild(character3)

    var myJoint = SKPhysicsJointPin.jointWithBodyA(character2.physicsBody, bodyB: character.physicsBody, anchor: CGPoint(x: CGRectGetMaxX(self.character2.frame), y: CGRectGetMinY(self.character.frame)))

   self.physicsWorld.addJoint(myJoint)

    var myJoint2 = SKPhysicsJointPin.jointWithBodyA(character2.physicsBody, bodyB: character.physicsBody, anchor: CGPoint(x: CGRectGetMaxX(self.character2.frame), y: CGRectGetMaxY(self.character.frame)))
    //self.physicsWorld.addJoint(myJoint2)

}

0 个答案:

没有答案