我有这段代码
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,为什么调用委托方法?