2017-08-16 64 views
0

我有一个SKShapeNode与一个physicsBody。我想这个节点到只有会受重力影响,而不是会受到碰撞影响。这可能吗?Swift - 使Sprite Kit节点仅受重力影响?

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

帮助!

+0

如果您通过'node.physicsBody?.collisionTestMask = 0'将其物理体的collisionBitMask设置为零,则节点不会受到碰撞的影响。冲动适用于代码,所以我不确定为什么你需要节点不受它们的影响。 – 0x141E

+0

@ 0x141E你对这些冲动是正确的,并不意味着包含它们。我试过设置'.collisionBitMask = 0',但这意味着节点不在屏幕上。 – Adi219

+0

如果你有一个楼层或屏幕边框,你需要碰撞位掩码设置为相同的值作为边界的categoryBitMask。 – 0x141E

回答

0

尝试对于边缘physicsBody设置categoryBitMask并设置节点的collisionBitMask为相同的值。

0
node.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:node.size]; 
node.physicsBody.dynamic= false; 
node.physicsBody.affectedByGravity = true; 
+0

我试过这个,但'.dynamic = false'渲染'.affectedByGravity = true'没用。它不起作用:-( – Adi219