
物理学
|
235
7.14
作用力
问题
我们想在物体上施加一个外力。
解决方案
使用
applyForce
或者
applyTorque
方法:
node.physicsBody?.applyForce(CGVector(dx: 0, dy: 100))
node.physicsBody?.applyTorque(0.01)
讨论
当我们对物体施加外力时,将会改变物体的运动状态。在使用
Sprite Kit
物理引擎时,
所有位于场景中的物体都会受到一个恒定的重力作用,这导致了物体的下落行为。
通过
applyForce
方法,我们可以对物体施加额外的作用力,这个方法有一个
CGVector
参数,用于描述力的大小。这样,作用力将立即得到应用。
在调用
applyForce
方法时,力会均匀地施加在整个物体上。如果需要将力作用于
物体的一点,则可以使用
applyForce(_, atPoint:)
方
法:
//
在距离物体中心偏右的地方施加一个外力
let position = CGPoint(x: 10, y: 0)
node.physicsBody?.applyForce(CGVector(dx: 0, dy: 100), atPoint: position)
atPoint
参数以场景坐标系来提供。
除了通过外力使物体的位置发生改变,我们还可以通过扭力来使物体成角运动(即
旋转)。
applyForce
和
applyTorque
方法的参数使用什么单位都不重要,只要它们是
一致的就行。通常,它们使用牛顿和牛顿
.
米作为单位。