我正在编写一段代码,我希望视图中有引力,但我希望特定的抛射物能够抵抗重力并飞过屏幕。我知道在整个视图中摆脱重力只是:
self.physicsWorld.gravity = CGVectorMake(0, 0);
但如上所述,我希望现场有引力。
所以我想知道是否有办法将重力从一个特定项目中解脱出来? (即我案例中的SKSpriteNode _debris
项目)
答案 0 :(得分:8)
通过将physicsBody设置为不受重力影响。 E.g。
myNoGravityObject.physicsBody.affectedByGravity = NO;
答案 1 :(得分:3)
如果您根本不希望节点与物理计算进行交互,但仍希望它具有physicsBody(即使其稍后开始与事物交互,或检查与其他节点的冲突),你可以设置
node.physicsBody.dynamic = NO;
这将导致节点忽略重力,以及碰撞,冲动等。如果您要设置联系人委托,请注意,任何给定联系人中的至少一个节点必须是动态的,以便联系代表获得该事件的通知。