[英]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.