SpriteKit中的位掩码问题SWIFT
问题描述:
在我的游戏中,我有具有不同颜色的圆圈。他们应该只碰撞不是他们的颜色的边界。 要做到这一点,我首先分配正常的圈子类别位掩码。SpriteKit中的位掩码问题SWIFT
struct CollisionCategoryBitmask {
static let monster: UInt32 = 00000001
static let picker: UInt32 = 00000010
static let bound: UInt32 = 00000100
static let circle: UInt32 = 00001000
static let yellow: UInt32 = 00010000
static let brown: UInt32 = 00100000
static let cyan: UInt32 = 01000000
static let magenta: UInt32 = 10000000
}
physicsBody?.categoryBitMask = CollisionCategoryBitmask.circle
边界有以下口罩:
boundary.physicsBody?.categoryBitMask = CollisionCategoryBitmask.bound
boundary.physicsBody?.collisionBitMask = 11101111
圆与它得到一个位掩码,应该使它停止与然而边界它不相冲突的选择器碰撞后。
self.circles[i].fillColor = .yellow
self.circles[i].physicsBody?.categoryBitMask = 00010000
self.circles[i].physicsBody?.collisionBitMask = 11111011
该代码在圆圈与拾取器发生碰撞时执行。 结构中的值(如青色和洋红色)均为圆形状态,它不会与该颜色的边界发生碰撞。我的错误在哪里?
答
只需在每个文字的开头添加“0b”。你现在不使用二进制符号。
了解更多关于位掩码如何工作的信息。