如何在Sprite工具包和objective c中检测两个节点的碰撞点



我有两个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

保持编码……..:)

最新更新