我想要一個物體浮在屏幕上,抵抗重力,根本不移動。SpriteKit物理上的150個神祕因素。重力和力量
這是視圖的重力設置。
self.physicsWorld.gravity = CGVector(dx: 0, dy: 5.0)
它被設置爲5米/秒^ 2向上。所以對象每秒向上加速5m。
物體的質量被設置爲1.0公斤
self.physicsBody?.mass = 1.0
我施加力到所述對象,以便它能抵抗重力。所以我做了以下。
func update(delta: TimeInterval) {
...
let force = CGVector(dx: 0.0, dy: -5.0)
self.physicsBody?.applyForce(force)
}
我施加-5N因爲我認爲施加到對象上的重力是1公斤* 5米/秒^ 2 = 5N。應用-5N將使物體加速-5m/s^2,由於重力而浮在屏幕上。
但它沒有奏效。相反,我必須這樣做。
let force = CGVector(dx: 0.0, dy: -5.0 * 150.0)
-5乘以是-750。那麼,這個從哪裏來?爲什麼我必須應用-750N而不是-5N才能使物體抵抗重力?
我還測試了不同的質量和力量在不同的重力設置。
self.physicsBody?.mass = 2.0
let force = CGVector(dx: 0.0, dy: -5.0 * 150.0 * 2)
self.physicsWorld.gravity = CGVector(dx: 0, dy: 15.0)
self.physicsBody?.mass = 2.0
let force = CGVector(dx: 0.0, dy: -15.0 * 150.0 * 2)
,他們都找到工作。 F = MA。
問題是神祕因素。它到底是從哪裏來的?
150是150點到1米,他們未能做到從米到點的轉換 – Knight0fDragon