首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Swift中对对象施加作用力( SpriteKit )

如何在Swift中对对象施加作用力( SpriteKit )
EN

Stack Overflow用户
提问于 2018-06-07 04:36:19
回答 1查看 215关注 0票数 0

所以我对SpriteKit有点陌生,我想知道如何获得物体上的力的大小,并将其放入一个变量中。当你对一个物体施加力时,例如,这段代码,

line.physicsBody?.applyImpulse(CGVector(dx: 0, dy: -30))

它会问你每个方向有多少钱。好吧,我想做相反的事情。我想要得到物体所受的力的大小和方向。

EN

回答 1

Stack Overflow用户

发布于 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做的,稍后会改正。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50729176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档