IOS Swift Spritekit碰撞检测

时间:2015-03-02 03:58:03

标签: ios swift sprite-kit collision-detection bitmask

我是一个非常新的程序员,目前正在使用Swift来制作像游戏一样简单的破砖机。我正在尝试创建一个标签,根据球与桨碰撞的次数动态显示分数。到目前为止,我的代码中有两个不同的部分。

bottom.physicsBody!.categoryBitMask = BottomCategory
ball.physicsBody!.categoryBitMask = BallCategory
paddle.physicsBody!.categoryBitMask = PaddleCategory
ball.physicsBody!.contactTestBitMask = BottomCategory

我知道这可能没有多大帮助,但我想知道我将要制作什么类型的位掩码。这是我的代码的一部分,我希望它创建标签

func didBeginContact(contact: SKPhysicsContact) {
    // Make variables for the two physics bodies
    var score: Int
    var firstBody: SKPhysicsBody
    var secondBody: SKPhysicsBody

    let label = SKLabelNode(fontNamed: "Chalkduster")
    label.text = String(score)
    label.fontSize = 40
    label.fontColor = SKColor.whiteColor()
    label.position = CGPoint (x: 1136, y: 600)
    addChild(label)
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

要检测您必须设置collisionBitMask的碰撞并测试联系人,您必须设置contactTestBitMask。球必须检测与桨叶的碰撞并检测与底部和桨叶的接触。因此,您必须将contactTestBitMask设置为

ball.physicsBody?.contactTestBitMask = BottomCategory | PaddleCategory

collisionBitMask

ball.physicsBody?.collissionBitMask = PaddleCategory

所以你的代码应该是

bottom.physicsBody?.categoryBitMask = BottomCategory
bottom.physicsBody?.contactTestBitMask = BallCategory

paddle.physicsBody?.categoryBitMask = PaddleCategory
paddle.physicsBody?.contactTestBitMask = BallCategory
paddle.physicsBody?.collissionBitMask = BallCategory

ball.physicsBody?.categoryBitMask = BallCategory
ball.physicsBody?.contactTestBitMask = BottomCategory | PaddleCategory
ball.physicsBody?.collissionBitMask = PaddleCategory
相关问题