Очень странное поведение 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, почему вызывается метод делегата?

0 ответов

Другие вопросы по тегам