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

在两个SK物理对象之间创建SK物理连接是否会禁用它们之间的冲突检测?

竺辉
2023-03-14

我注意到以下几点:

  1. 如果我创建了一个具有物理边界(bodyWithEdgeLoopFromRect)和两个节点的场景,每个节点都有一个圆形实体物理体( ),那么在将这两个节点添加到场景中时,它们可能会像预期的那样相互碰撞,并与场景边界碰撞
  2. 但是,如果我在两个节点之间添加任何类型的关节,关节约束将保持在它们之间,并且它们仍然可以碰撞场景的边界。但它们不再相互碰撞

对我来说这似乎是一个错误。我期望物理实体之间的任何连接都是除了它们的基本碰撞机制之外的。有没有人经历过类似的行为,或者对我可能做错了什么有什么提示?

(顺便说一句,我用box2d标记这个问题的原因是因为SpriteKit使用Box2d,所以这可能是我不知道的Box2d已知问题)。


共有1个答案

姚善
2023-03-14

是的,这是Box2D的默认行为。我相信在box2d中你可以覆盖它,但建议不要这样做。原因是关节上的碰撞物体会对抗关节限制,反之亦然,从而在模拟中引入不稳定性。结果是两个物体为解决关节约束和碰撞响应而战会引入额外的力。

 类似资料:
  • 问题内容: 我想知道判断Shape对象是否与另一个形状相交的最佳方法。目前,我在游戏中已对碰撞检测进行了分类,只要它涉及与矩形相交的Shape,反之亦然。我遇到的问题是Shape类中的intersects()方法只能将Rectangle或Point作为参数,而不能将另一个Shape用作参数。有没有一种有效的方法来测试两个Shape对象是否以任何方式重叠?我尝试的一种方法是使用for循环生成一个点区

  • 问题内容: 我需要测量以字符串形式提供名称的两个地方之间的物理距离。由于有时名称的书写方式略有不同,因此我一直在寻找一个可以帮助我测量差异的库,然后将其与纬度和经度结合起来以选择正确的匹配项。首选语言:Java或PHP。 有什么建议? 问题答案: 看看Levenshtein距离。这是一种测量两个字符串彼此之间有多不同的方法。 希望我能正确理解你的问题;在与“经度”相同的句子中使用“距离”可能会造成

  • 我已经有我的categorybitmasks设置,希望是正确的,但我下面的代码应该有我的子弹和敌人接触,然后删除对方。什么也没发生,它们只是碰撞,仍然停留在屏幕上 func didBeginContact(联系人:SKPhysicsContact!){ bullet.physicsBody?.categoryBitMask=CollisionTypes.bullet.rawValuebullet.

  • 我正在使用spring boot创建一个后端应用程序,其用户使用JWT进行身份验证。 当我验证用户的jwt(使用过滤器)时,我将其内容解析为一个名为“身份验证”的对象,其中包含用户的id、名称、角色... 在用用户数据创建这个对象之后,我自动连接它,以便将它用于任何类(服务、控制器…) 大多数时候,我对它没有问题。但有时我发现这个对象包含另一个用户的信息。 我认为每个用户都可以访问包含其信息的对象

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

  • 问题内容: 如果您尝试找出int是否介于数字之间,为什么不能这样做呢? 取而代之的是,您必须做 这似乎有点开销。 问题答案: 一个问题是三元关系构造会引入严重的解析器问题: 当您尝试使用典型的PGS用这些生成物表达语法时,您会发现在first的位置存在shift-reduce冲突。解析需要先查找任意数量的符号,然后才能确定是否已使用二进制或三进制形式,以查看是否存在第二个符号。在这种情况下,您不能