尝试在 SpriteKit 中使用径向重力场时遇到问题
我不希望同类对象(由 categoryBitMask 定义以相互吸引)
这是我的做法:
struct PhyscisCategory {
static let None : UInt32 = 0
static let All : UInt32 = UInt32.max
static let Star : UInt32 = 0b1
static let Planet : UInt32 = 0b10
}
<....>
Planet1.physicsBody!.categoryBitMask = PhyscisCategory.Planet
Planet1.physicsBody!.fieldBitMask = PhyscisCategory.Star
Planet2.physicsBody!.categoryBitMask = PhyscisCategory.Planet
Planet2.physicsBody!.fieldBitMask = PhyscisCategory.Star
无论我尝试什么,行星总是相互吸引(除非我将 fieldBitMask 设置为 0,但它们当然也不再被 Star 吸引)!我希望这 2 行代码只有恒星重力场才会对行星产生影响......
从文档:
“fieldBitMask:定义哪些类别的物理场可以在此物理体上施加力的掩码。当物理体位于 SKFieldNode 对象的区域内时,该场节点的 categoryBitMask 属性将通过执行逻辑与该物理体的 fieldBitMask 属性进行比较AND 操作。如果结果为非零值,则将场节点的效果应用于物理体。
我做错什么了吗?