IOS Swift Spritekit 碰撞检测
IOS Swift Spritekit Collision Detection
我是一个非常新的程序员,目前正在使用 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)
}
如有任何帮助,我们将不胜感激。
要检测碰撞,您必须设置 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
我是一个非常新的程序员,目前正在使用 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)
}
如有任何帮助,我们将不胜感激。
要检测碰撞,您必须设置 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