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”。你现在不使用二进制符号。

了解更多关于位掩码如何工作的信息。