如何使特定物体无视重力? (SpriteKit / Objective-C)

时间:2014-03-31 15:23:45

标签: ios objective-c sprite-kit

我正在编写一段代码,我希望视图中有引力,但我希望特定的抛射物能够抵抗重力并飞过屏幕。我知道在整个视图中摆脱重力只是:

self.physicsWorld.gravity = CGVectorMake(0, 0);

但如上所述,我希望现场有引力。

所以我想知道是否有办法将重力从一个特定项目中解脱出来? (即我案例中的SKSpriteNode _debris项目)

2 个答案:

答案 0 :(得分:8)

通过将physicsBody设置为不受重力影响。 E.g。

myNoGravityObject.physicsBody.affectedByGravity = NO;

请参阅documentation of SKPhysicsBody

答案 1 :(得分:3)

如果您根本不希望节点与物理计算进行交互,但仍希望它具有physicsBody(即使其稍后开始与事物交互,或检查与其他节点的冲突),你可以设置

node.physicsBody.dynamic = NO;

这将导致节点忽略重力,以及碰撞,冲动等。如果您要设置联系人委托,请注意,任何给定联系人中的至少一个节点必须是动态的,以便联系代表获得该事件的通知。