【问题标题】:SPriteKit Handling collision behaviour from different AnglesSPriteKit 处理不同角度的碰撞行为
【发布时间】:2014-06-17 05:46:07
【问题描述】:

我正在开发游戏,其中我需要来自不同侧面的不同碰撞行为,

假设有一个角色从下方撞到任何其他障碍物时,它的行为
会有所不同。

当它在顶部与任何其他障碍物或物体发生碰撞并且障碍物或物体在其下方时,我需要不同的行为,

实现它的最佳方法是什么。-(void)didBeginContact:(SKPhysicsContact*)contact 它是如何
对我的场景有帮助

谢谢

【问题讨论】:

  • skphysicscontact 为您提供接触点developer.apple.com/library/ios/documentation/SpriteKit/… 检查接触点相对于 nodeA 和 nodeB 位置的位置。即如果 posA.x contactpoint.x 联系人在 nodeA 的右侧。
  • 感谢您的想法很有帮助。
  • 还有一点与我的问题无关,但我有点困惑,是决定 bodyA 和 bodyB 在 SkphysicsContact.or 中的 categroybitmask。或者简单来说,什么标准决定了 body联系方式是contact.bodyA 还是contact.bodyB?谢谢
  • bodyA 和 bodyB 不是确定性的,所需的节点可能一次是 A,下一次是 B。您的代码必须处理这两种情况。位掩码不会影响 nodeA 和 nodeB 的顺序。位掩码的工作原理在 skphysicsbody 类参考中进行了说明。

标签: sprite-kit skphysicscontact


【解决方案1】:

您甚至不需要联络点。在您确定联系的对象后调用的方法可以访问联系的节点。因此,您可以只比较 x 和 y 位置并相应地处理它们。然后,您可以忽略碰撞位掩码并在联系人调用的方法中复制碰撞。

【讨论】:

    【解决方案2】:

    LearnCocos2D 引导我走向正确的方向

    skphysicscontact 为您提供接触点 developer.apple.com/library/ios/documentation/SpriteKit/... 检查接触点相对于 nodeA 和 nodeB 位置的位置。即如果 posA.x contactpoint.x 联系人在 nodeA 的右侧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 2015-01-26
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      相关资源
      最近更新 更多