在SpriteKit中,我希望將contactTestBitMask值分配給一組值。指定contactTestBitMask爲<Set>
這是正常的方式:
sprite.physicsBody?.contactTestBitMask = ColliderType.goal.rawValue | ColliderType.greyBox.rawValue
意味着我的精靈通知我,當談到它與這些撞機類型的聯繫。 但是我的問題是我的collider類型會在遊戲過程中動態變化,而且精靈contactTestBitMask也需要改變。我想用一組對撞機類型和分配不同的組和挪用時間:
sprite.physicsBody?.contactTestBitMask = SetManager.sharedSetManager.normalSet
在SetManager類:
enum NormalColliderType:UInt32 {
case greyBox = 0
case enemy = 2
case goal = 4
case coin = 8
}
var currentSet: Set<Int> = []
var normalSet: Set<UInt32> = [NormalColliderType.greyBox.rawValue | NormalColliderType.goal.rawValue]
static let sharedSetManager = SetManager()
從理論上講,它的可行的,但我收到的唯一的錯誤是: 「無法分配類型‘設置’的價值鍵入‘UInt32的’」 我猜我問了一套如何可以用作可變
碰撞可以了'greyBoxAndGoal'情況下你'enum' 5('greyBox'的增值應該是1不是0)。 – 0x141E