Sprite kit 中如何检测两个节点的碰撞点 objective c
how to detect two nodes collision point in Sprite kit and 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
继续编码.......... :)
我有两个 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
继续编码.......... :)