【问题标题】:how to detect two nodes collision point in Sprite kit and objective c如何检测Sprite kit和目标c中的两个节点碰撞点
【发布时间】:2016-05-12 12:23:10
【问题描述】:

我有两个 SKSpriteNode,我知道如何检测它们是否在同一个地方,但我不知道如何检测它们在哪个节点发生碰撞。我特别想知道其中一个节点碰撞的地方,因为我想在节点高度末端添加不同的applyImpulse,所以另一个节点会改变方向。

【问题讨论】:

  • 在碰撞检测方法中找不到节点位置吗?您始终可以在 didBeginContact 方法中获取节点位置。是你要找的吗?
  • 好吧,我检测到完整节点的冲突,但我想检测发生节点冲突的位置。你能明白吗?因为我的英语不是我的第一语言。
  • 碰撞时总能得到节点的cgpoint,但不知道能不能得到两个节点的准确碰撞点。
  • 我发现的替代方法是创建两个节点并放在一起,但我仍然想知道我的问题是否可行
  • @TejaNandamuri 节点之一正在移动,所以我认为使用 cgpoint 是不正确的

标签: ios objective-c sprite-kit collision-detection nodes


【解决方案1】:

didBeginContact 在 2 个物体碰撞时传递一个 SKPhysicsContact。 SKPhysocsContact 有一个属性contactPoint,它是一个CGPoint,是场景坐标中两个物理体之间的接触点。根据这点和两个物体碰撞时的位置,您可以计算出碰撞发生在物体上的确切位置。

【讨论】:

    【解决方案2】:

    你可以得到这样的联络点:

    CGPoint collidedPoint = contact.contactPoint;
    

    您可以像下面这样得到 x 和 y 点:

    NSLog(@"collidedPoint x= %f | %f",collidedPoint.x,collidedPoint.y); 
    // Prints like: collidedPoint x= 424.855835 | 46.139378
    

    继续编码...... :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多