【问题标题】:Collision with .sks Physics bodies at the same level与同级的 .sks 物理体碰撞
【发布时间】:2019-01-20 10:27:12
【问题描述】:

当我在Xcode 中创建.sks 场景时,我经常需要在完全相同的xy 位置的两个节点来创建一堵墙。我添加了矩形物理体。他们都没有任何摩擦。

当我在这些碰撞体上移动spritenode 时(我正在对物理体使用脉冲),它的作用就像两个矩形之间存在障碍,我需要“推动”节点或使其跳跃以越过边界。 正如我所说,这些节点彼此完全一致,因此节点应该能够顺利流过它们。

有什么建议吗?

如果您需要我正在使用的任何代码/图片,请询问。

编辑:答案

我的问题是碰撞平台相互碰撞,因此在所有平台的生成中它们被略微推出。

解决的方法是在平台上设置以下值: categoryBitMask 到 1 collisionBitMask 至 4294967294 这基本上意味着它们不会相互碰撞。

swift 还是新手,继续学习:P

【问题讨论】:

  • 请显示categoryMaskcollisionMask等您将每个节点设置为什么。
  • @George_E_2 我对此还是很陌生,抱歉。类别和碰撞掩码都只是 4294967295?我不确定这是什么意思,我会读一下。如果这很重要,请告诉我,我会更改它。
  • 啊,明白了。我将其设置为平台不再相互碰撞。感谢您的指点:P

标签: xcode sprite-kit


【解决方案1】:

我已经将@abc 指向正确的答案。只是为了解释为什么口罩在4294967295

您可以看到这是 32 位(该数字全为 1)。每个位都是一个不同的掩码,碰撞和类别掩码会查看这些,以确定它们是否接触/碰撞等属性。这意味着您可以在游戏中制作 32 个面具。

如果您想了解如何制作面具或组合面具,可以使用Bitwise Operators。这些运算符可以让您使用|(或)位运算符或类似的东西将掩码添加在一起。请阅读我链接到的 Apple 文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多