【问题标题】:Why can't I add a Joint to the Scene physicsWorld in SpriteKit为什么我不能在 SpriteKit 中的场景物理世界中添加关节
【发布时间】:2014-01-25 16:17:44
【问题描述】:

我正在尝试向场景的物理世界属性添加一个关节,但我得到了一个 EXC_BAD_ACCESS。这是我正在使用的代码。

SKPhysicsJointFixed *fixedJoint = [SKPhysicsJointFixed jointWithBodyA:self.mousePoint.physicsBody bodyB: self.box.physicsBody anchor:touchPoint];

[self.physicsWorld addJoint:fixedJoint]; // Error happens here.

我在触摸开始时调用它。有谁知道怎么回事?

【问题讨论】:

  • mousePoint 和 box 的物理实体不是 nil 吗?创建的 fixedJoint 是否为零?日志中是否有任何可能相关的错误消息?
  • 是的。当调用场景 initWithSize:size 时,我将 mousePoint 设置为新的 SKShapeNode。但是当触摸开始时,我将路径设置为 SKShapeNode。
  • 不,我的意思是:您是否使用断点和调试器验证了 SKPhysicsJointFixed 的输入参数不是 nil 并且返回的 fixedJoint 也是非 nil?

标签: ios objective-c sprite-kit


【解决方案1】:

我和你遇到了同样的问题,答案很简单, 只需将节点添加到场景中,然后再将其添加到物理世界。

【讨论】:

  • 同意 - 同样的问题,这是正确的解决方案。在我的情况下,尚未附加的节点位于树的更上方,因此需要花费一些时间才能找到。 +1,但如果有更大权力的人可以将约翰的答案标记为正确,我认为这对其他人有用。
【解决方案2】:

我有同样的问题。 问题是:我忘记将physicsBody 添加到其中一个节点。 所以我通过了“零”。这就是我的错误的原因。

试试这样的:

node.physicsBody = SKPhysicsBody(rectangleOfSize: node.size)

【讨论】:

    【解决方案3】:

    我有类似的问题,因为我在将节点添加到场景之前创建物理体。

    试试这个 1个初始化节点 2 将其添加到场景中 3 附加物理体 4 用关节做任何事

    (我正在切换 2 和 3,但它没有工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2021-08-18
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多