我有一堆积木(想想愤怒的小鸟),当一个弹丸击中它们时,它们会像你期望的那样坠落。SKPhysicsBody -bodyWithEdgeLoopFromRect为什么不对碰撞做出反应?
self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.size];
但是,如果我创建了物理体这样的:不过,如果我创建像这样的physicsBody这仅适用
CGRect r = CGRectMake(-self.size.width/2, -self.size.height/2, self.size.width, self.size.height);
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:r];
然后碰撞是有的,但块不受它影响。抛射物从它上面弹开,但不会导致块体移动。我的categoryBitMask和collisionBitMask是正确的 - 它们与-bodyWithRectangleOfSize一起工作,但-bodyWithEdgeLoopFromRect没有。
这是一个SpriteKit错误,或者我错过了什么?
感谢,
-Brian
某处还有解释说明基于边缘的物体不会与其他基于边缘的物体产生接触事件。如果不在参考文献中,那么在SK编程指南中。 – LearnCocos2D
@ LearnCocos2D https://developer.apple.com/documentation/spritekit/skphysicsbody - isDynamic属性控制基于音量的主体是否受重力,摩擦力,与其他对象的碰撞影响... –