首先我添加了
skView.showsPhysics = YES;
看物理体电路。
但
我有一个失去物理效果 O_o 的问题...我有一个受重力影响并掉下来的球。
// Ball
self.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.size.height/2];
self.physicsBody.categoryBitMask = ballCategory;
self.physicsBody.contactTestBitMask = bottomCategory;
我还创建了底部边缘的物理身体来获取碰撞消息:
// Bottom edge
CGRect bottomRect = CGRectMake(self.frame.origin.x, self.frame.origin.y + 25, self.frame.size.width, 10);
SKNode* bottom = [SKNode node];
bottom.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:bottomRect];
[self addChild:bottom];
在我将 bitMask 添加到底部边缘之前,它正确地相互交互
bottom.physicsBody.categoryBitMask = bottomCategory;
bottom.physicsBody.collisionBitMask = ballCategory;
面具:
static const uint32_t ballCategory = 0x1 << 0; // 00000000000000000000000000000001
static const uint32_t bottomCategory = 0x1 << 1; // 00000000000000000000000000000010
它停止了工作。嗯……
我注释掉了将掩码分配给底部边缘 - 它有效。然后我分配给底部边缘另一个 - 球面罩 - 它不再起作用。
我想,我在文档中遗漏了一些东西,但现在我找不到它为什么会发生的答案。