0
我試圖聯繫,但它沒有工作。需要了解ENUM聯繫SpriteKit
創建一個枚舉:
enum object:UInt32{
case BB = 1
case TR = 2
case GAP = 3
}
然後我有3個節點:
balloon.physicsBody?.categoryBitMask = object.BB.rawValue
balloon.physicsBody?.contactTestBitMask = object.TR.rawValue
balloon.physicsBody?.collisionBitMask = object.GAP.rawValue
tree2.physicsBody?.categoryBitMask = object.TR.rawValue
tree2.physicsBody?.contactTestBitMask = object.BB.rawValue
gap.physicsBody?.categoryBitMask = object.GAP.rawValue
gap.physicsBody?.collisionBitMask = object.GAP.rawValue
gap.physicsBody?.contactTestBitMask = object.BB.rawValue
在DidBeginContact:
let result = contact.bodyA.categoryBitMask + contact.bodyB.categoryBitMask
switch result{
case object.BB.rawValue + object.TR.rawValue:
xoaBB(contact.bodyA.node as! SKSpriteNode, TR: contact.bodyB.node as! SKSpriteNode, toaDo: contact.contactPoint)
case object.BB.rawValue + object.GAP.rawValue:
score++
scorelabel.text = "\(score)"
default:
return
}
的問題是:
"case object.BB.rawValue + object.GAP.rawValue" didn't work
我希望氣球飛過間隙得分,但它不能。如圖所示,氣球剛剛接觸到間隙並卡在那裏。
誰能幫助我,我真的需要「如何使用枚舉教程太」
首先要考慮的事實是位掩碼,以及位掩碼。值1,2和3是沒有意義的,因爲前兩個的總和等於第三個的值。值應該是1,2,4,8等 –