我有一个SKShapeNode与一个physicsBody。我想这个节点到只有会受重力影响,而不是会受到碰撞影响。这可能吗?Swift - 使Sprite Kit节点仅受重力影响?
我试过node.isDynamic = false
但这意味着节点是而不是受重力影响。我试过设置.collisionBitMask = 0
,但节点掉到了屏幕之外。我搜索了SO和Google,但找不到任何东西...
帮助!
我有一个SKShapeNode与一个physicsBody。我想这个节点到只有会受重力影响,而不是会受到碰撞影响。这可能吗?Swift - 使Sprite Kit节点仅受重力影响?
我试过node.isDynamic = false
但这意味着节点是而不是受重力影响。我试过设置.collisionBitMask = 0
,但节点掉到了屏幕之外。我搜索了SO和Google,但找不到任何东西...
帮助!
尝试对于边缘physicsBody设置categoryBitMask
并设置节点的collisionBitMask
为相同的值。
node.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:node.size];
node.physicsBody.dynamic= false;
node.physicsBody.affectedByGravity = true;
我试过这个,但'.dynamic = false'渲染'.affectedByGravity = true'没用。它不起作用:-( – Adi219
如果您通过'node.physicsBody?.collisionTestMask = 0'将其物理体的collisionBitMask设置为零,则节点不会受到碰撞的影响。冲动适用于代码,所以我不确定为什么你需要节点不受它们的影响。 – 0x141E
@ 0x141E你对这些冲动是正确的,并不意味着包含它们。我试过设置'.collisionBitMask = 0',但这意味着节点不在屏幕上。 – Adi219
如果你有一个楼层或屏幕边框,你需要碰撞位掩码设置为相同的值作为边界的categoryBitMask。 – 0x141E