所以我对SpriteKit有点陌生,我想知道如何获得物体上的力的大小,并将其放入一个变量中。当你对一个物体施加力时,例如,这段代码,
line.physicsBody?.applyImpulse(CGVector(dx: 0, dy: -30))
它会问你每个方向有多少钱。好吧,我想做相反的事情。我想要得到物体所受的力的大小和方向。
发布于 2018-06-07 05:30:20
一种冲动,一种持续了一瞬间的力.当物体相对于其速度和质量发生碰撞时,该物体只能对另一个物理物体施加力。
如果你想找到你的对象当前平均速度,你可以使用sprite.physicsbody?.velocity
或者,您可以检查对象是否随
physicsbody?.isResting
如果要计算帧之间施加在对象上的平均作用力,则必须计算上一次更新周期之间位置变化的大小,然后乘以对象质量,如下所示。
var lastPosition: CGPoint?
var avgForce: CGPoint?
func updatedForce(for sprite: SKSprite, timeDelta: Double) {
guard let lastPosition = lastPosition, let currentVelocity = currentVelocity) else {
lastPosition = sprite.position
}
let position = sprite.position
let mass = sprite.physicsbody.mass
var changeInX = position.x - lastPosition.x
var changeInY = position.y - lastPosition.y
avgForce = CGPoint(x: changeInX * mass, y: changeInY * mass)
}`
我为任何格式问题或拼写错误道歉,这是从我的iPhone做的,稍后会改正。
https://stackoverflow.com/questions/50729176
复制相似问题