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