【问题标题】:Swift - Make Sprite Kit Node to only be affected by gravity?Swift - 使 Sprite Kit 节点仅受重力影响?
【发布时间】:2017-08-16 13:36:20
【问题描述】:

我有一个带有physicsBody 的SKShapeNode。我希望该节点受重力影响,受到碰撞影响。这可能吗?

我尝试过node.isDynamic = false,但这意味着该节点不受重力影响。我尝试设置.collisionBitMask = 0,但节点掉出屏幕。我搜索了 SO 和 Google,但找不到任何东西...

帮助!

【问题讨论】:

  • 如果通过node.physicsBody?.collisionTestMask = 0 将其物理体的collisionBitMask 设置为零,则该节点不会受到碰撞的影响。脉冲是通过代码应用的,所以我不确定为什么你需要节点不受它们的影响。
  • @0x141E 你对冲动的看法是对的,并不是要包括它们。我试过设置.collisionBitMask = 0,但这意味着节点会掉出屏幕。
  • 如果您有地板或屏幕边框,则需要将碰撞位掩码设置为与边框的 categoryBitMask 相同的值。
  • @0x141E 我已经尝试了你的建议,但节点仍然掉出屏幕。
  • 边界有物理体吗?

标签: ios swift sprite-kit xcode8


【解决方案1】:
node.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:node.size];
node.physicsBody.dynamic= false;
node.physicsBody.affectedByGravity = true;

【讨论】:

  • 我已经尝试过了,但 .dynamic = false 使 .affectedByGravity = true 无用。它不起作用:-(
【解决方案2】:

尝试为边缘物理体设置categoryBitMask,并将节点的collisionBitMask设置为相同的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多