2017-01-26 13 views
1

나는 물체가 화면 상에 뜨기를 원했고, 중력에 저항하고 전혀 움직이지 않았습니다.SpriteKit의 물리학에 150의 신비한 요인. 중력과 힘

이것은보기의 중력 설정입니다.

self.physicsWorld.gravity = CGVector(dx: 0, dy: 5.0) 

은 위쪽으로 5m/s^2 설정있다. 따라서 객체는 초당 5m만큼 가속됩니다. 오브젝트

질량은 중력에 저항 할 수 있도록 I 개체에 힘을인가 1.0kg

self.physicsBody?.mass = 1.0 

설정된다. 그래서 나는 다음과 같이했다. I 개체에인가되는 중력 1kg의 *를 5m/s^2 = 5N이다 생각했기

func update(delta: TimeInterval) { 
    ... 

    let force = CGVector(dx: 0.0, dy: -5.0) 
    self.physicsBody?.applyForce(force) 
} 

-5N 적용. -5N을 적용하면 개체가 중력에 따라 화면에 떠있는 -5m/s^2에 의해 가속됩니다.

하지만 작동하지 않았습니다. 대신 나는 이것을해야만했다.

let force = CGVector(dx: 0.0, dy: -5.0 * 150.0) 

-5 150 승산은 -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.

질문은 신비한 요소 입니다. 도대체 어디로 양식이 오나요?

+0

150은 150 미터에서 1 미터 사이이며, 미터에서 포인트로 변환하지 못했습니다. – Knight0fDragon

답변

1

좋아요, 그래서 그것은 애플의 잘못된 문서에 관한 것이 었습니다. 여기이 조금 바보 같다 150

의 사실이지만 applyForce가 측정된다 ((점 * 킬로)/초^2)하지만, 중력 가속도 뉴턴 ((에 킬로 * m)/sec^2) (실제로 초당 미터로 설명되어 있지만 초당 미터! 가속!). 질량을 곱하여 힘을 얻으십시오.

https://stackoverflow.com/a/31868380/5752908

어서

애플 ... 그것은 4 년 동안 거기에있었습니다.

+1

미터/초 제곱 및이 경우 초당 미터 수는 150/1^2 = 150^1^1 – Knight0fDragon