Очень странное поведение SKPhysics
У меня есть этот код
SKPhysicsBody *firstBody, *secondBody;
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask) {
firstBody = contact.bodyA;
secondBody = contact.bodyB;
} else {
firstBody = contact.bodyB;
secondBody = contact.bodyA;
}
Я сделал этот скриншот из моего -(void)didBeginContact:(nonnull SKPhysicsContact *)contact
метод. Я нахожу это очень запутанным, потому что 2 & 3 == 2
, но 4 & 3 == 0
, Как уже упоминалось в документах,
Если какое-либо сравнение приводит к ненулевому значению, объект SKPhysicsContact создается и передается делегату мира физики.
Интересно, как это возможно? Поскольку второе выражение возвращает 0, почему вызывается метод делегата?