【问题标题】:Collision of two objects两个物体的碰撞
【发布时间】:2019-09-11 15:26:46
【问题描述】:

我想知道是否有办法检查两个SpriteKitNode 对象的完美碰撞。下面我添加了一个我想要的示例。

我尝试了SKNode.intersects(_:) 但这会检查整个对象黄色和粉红色的碰撞,而不是图像中的对象。

我将使用的对象是 SKSpriteKitNode 和 png SKTexture

谢谢!

【问题讨论】:

  • 有很多方法。搜索像素完美碰撞,您将找到满足您需求的答案。给他们点赞。
  • 他所说的,但也请记住,我们都理想地想要在我们的游戏中实现像素完美的碰撞,但它们的计算成本很高且通常不需要 - 默认解决方案使用边界框//圆形/多边形(这与在您的示例中使用精灵的框架不同)通常足够好,并且与完美碰撞无法区分。

标签: swift sprite-kit skspritenode sknode


【解决方案1】:

这不是一个答案,而是试图说明我上面的评论。用于碰撞检测的物理体可以是(按计算成本递增的顺序)圆形、矩形、多边形或完美位图。

除非您非常需要像素完美的碰撞(大型精灵、缓慢移动等),否则在您的场景中使用圆形和矩形物理体(下图中“错误”部分中的红色轮廓) 可能就足够了:

如有必要,可以轻松地将斧头体更改为“L”形多边形,以实现更准确的碰撞,同时(希望)略微增加成本。

【讨论】:

  • 使其成为 2 个框节点会比 L 形多边形更有效
  • @Knight0fDragon Doh! ——没想到! OP 说明 - 您可以创建一个 PB(物理实体)数组并使用该数组创建一个新的 PB。
  • 它必须是2个节点,一个Pb数组只是合并线点。
  • 那2个PB是带关节的吗?
  • 不需要关节,只需将头部和身体两个独立的节点,并以某种方式约束它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多