Возникла проблема при попытке использовать радиальные гравитационные поля в 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, но, конечно же, их больше не привлекает и звезда)! Я ожидал от этих двух строк кода, что только звездные гравитационные поля будут влиять на планеты ...
из документации:
fieldBitMask: маска, которая определяет, какие категории физических полей могут оказывать силы на это физическое тело. Когда физическое тело находится внутри области объекта SKFieldNode, свойство categoryBitMask этого узла поля сравнивается со свойством fieldBitMask этого физического тела посредством выполнение операции логического И. Если результатом является ненулевое значение, эффект узла поля применяется к физическому телу ".
Я что-то не так делаю?