当前位置: 首页 > 知识库问答 >
问题:

与. sks物理体同级碰撞

濮阳振海
2023-03-14

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

当我使一个spritendode在这些碰撞体上移动时(我对物理体使用冲量),它的行为就像在两个矩形之间有一个屏障,我需要“推”节点或使其跳过边界。正如我所说的,这些节点彼此完全一致,因此节点应该能够平滑地通过它们。

有什么建议吗?

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

编辑:答案

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

解决方法是在平台上设置以下值:< code>categoryBitMask为1 collisionBitMask为4294967294,这基本上意味着它们不会相互冲突。

swift仍然是新手,值得继续学习:P

共有1个答案

归俊
2023-03-14

我已经指出了@abc的正确答案。为了解释为什么口罩位于4294967295

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

如果你想了解如何制作遮罩或组合遮罩,可以使用按位运算符。这些操作符可以让您使用< code>|(或)位操作符或类似的操作符一起添加掩码。请阅读我链接的苹果文档。

 类似资料:
  • 本章节主要介绍 2D 物理与碰撞系统,3D 相关的部分请参考 3D 物理与碰撞系统。 Creator 里的 2D 物理与碰撞系统包括两个部分: 碰撞系统 Box2D 物理引擎 对于物理计算较为简单的情况,我们推荐用户直接使用碰撞组件,这样可以避免加载物理引擎并构建物理世界的运行时开销。而物理引擎提供了更完善的交互接口和刚体、关节等已经预设好的组件。可以根据需要来选择适合自己的物理系统。

  • 问题内容: 我主要专注于图形方面,以创建一些2DGame。我看过/看过几本教程,但是没有一部教程那么令人满意。我已经有一个玩家(一个正方形)在屏幕上移动并与其他正方形碰撞。重力等。 如果在屏幕上看到的对象太多(30 * 20),则一切正常。但是,如果我将其增加到300 * 300,则该程序开始运行非常慢,因为它必须检查许多对象。 我真的不知道Minecraft之类的游戏如何与ALL THOSE块一

  • 从 v2.3.0 开始,Cocos Creator 新增了对 3D 物理与碰撞系统的支持。 Creator 的 3D 物理引擎基于 cannon.js 实现,提供了高效的组件化工作流程和便捷的使用方法。目前支持了刚体、Box/Sphere 碰撞组件、触发和碰撞事件、物理材质、射线检测等特性。 而 3D 碰撞检测系统 Builtin 是只有碰撞检测系统的物理模块。它没有复杂的物理模拟计算,这将使得游

  • 我正在制作一个游戏,其中我有一个被创建为SKSpriteNode的球,它与一些我不想碰撞的物体发生碰撞。这是我的球: 我希望它检测到它已经与这个分数物理体接触,但实际上并没有碰撞: (circleOfRadius仅用于测试目的)每次我尝试检查碰撞时,它似乎都没有输出我希望它执行的操作: 本质上,我的橙色球是一个SKSphapeNode,它总是与我的分数物理体相撞。也可能是我球周围的两个物理体和分数

  • 对于一个项目,我们得到了一个游戏引擎,用来创建一个游戏。作为其中的一部分,我们必须在通过边界盒检测方法发现可能的冲突后实现像素级的冲突检测。我已经实现了这两个,但是我的像素级测试对于小对象(在本例中是项目符号)失败了。我已经检查过它是否适用于慢速子弹,但它也失败了。 对于我的像素级实现,我使用可用的IntBuffer为每个纹理创建位掩码(ByteBuffer也可用?)。IntBuffer是RGBA

  • 我正在构建一个迷宫游戏,在这里我有一个简单的地图... 直到没有问题,但我的问题是碰撞 这是我的地图: 在这里,我用以下代码自己构建了地图: 此碰撞代码用于右上角矩形 我已经尝试了两种不同类型的碰撞代码,但都不起作用 碰撞码: 在这里,当玩家从左侧击中矩形时,玩家向下移动,当玩家从底部击中矩形时,玩家向左移动。 我用if, else if语句尝试过相同的代码,但仍然不起作用。当玩家点击左侧时,它可