繁体   English   中英

SpriteKit SWIFT中的位掩码出现问题

[英]Trouble with bit masks in 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”。 您现在不使用二进制表示法。

阅读有关位掩码如何工作的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM