我有两个SKSpriteNode,我知道如何检测它们是否在同一位置,但我不知道如何检测他们在节点的哪个位置发生冲突。我特别想知道其中一个节点的碰撞位置,因为我想在节点的高度末端添加不同的applyImpulse
,这样另一个节点就会改变方向。
didBeginContact
在两个物体碰撞时传递一个SKPhysicsContact
。SKPhysocsContact具有属性contactPoint
,该属性是CGPoint
,并且在场景坐标中是两个物理体之间的接触点。根据这一点和两个物体碰撞时的位置,你可以计算出碰撞发生在物体上的确切位置。
您可以获得以下联系人:
CGPoint collidedPoint = contact.contactPoint;
你可以得到x&y点如下:
NSLog(@"collidedPoint x= %f | %f",collidedPoint.x,collidedPoint.y);
// Prints like: collidedPoint x= 424.855835 | 46.139378
保持编码……..:)