Spritekit - 对物理体应用加速度

Spritekit - applying an acceleration to a physics body

我正在做一个项目,其中有一个受重力影响的节点。我希望能够在不接触重力的情况下对该节点应用垂直加速度。很像一个热气球,我会让它上升或下降,而其他物体通常仍受重力影响。

balloon = Vehicle()
balloon.physicsBody = SKPhysicsBody(polygonFrom: path)
balloon.physicsBody?.affectedByGravity = true

我试过 applyForce(_:) 和冲动,但我想要的是适当的加速,而不是随着时间的推移对抗重力的准时冲动!有什么建议吗?

您要查找的是 Sprite Kit 中的物理场(SKFieldNode)。

这些提供了用一般力影响物体的能力,如风力、升力、黑洞式吸引力等。

你可以阅读它们 here.

关于它们如何工作的真正重要的考虑因素是 quote:

Physics bodies with affectedByGravity set to false are still affected by the gravity fields created by linearGravityField(withVector:) and radialGravityField().

但是他们忘记也明确(呃)的是受重力影响的物体也会受到这些场的影响。