2012-07-18 5 views
1

우선이 글은 제가 StackOverflow에 작성한 첫 번째 글이며 실제로 프로그래밍에 익숙하지 않습니다. 죄송합니다.JavaScript에 대한 Box2d : SetLinearVelocity()가 작동하지 않습니다.

나는이 작품을 만들려고 노력했다. 나는 공중에 머물러있는 몸체를 시뮬레이션하고 싶다. 그리고 그걸 위해 나는 SetLinearVelocity(new b2Vec2(0, 0))을 사용한다.

다른 글을 읽으면서, 중력 벡터가 중요하다고 생각합니다 : 그것은 b2Vec2(0, 30);이고 나는 1/30 초의 타임 스텝을 가지고 있습니다.

특정 신체의 정비사를 처리하는 코드의 비트는 다음과 같다 :

this.clocktick = function(deltaT) { 
    this.body.SetLinearVelocity(new b2Vec2(0, 0)); 

    if(this.body.GetLinearVelocity().y != 15){ 
     console.debug(this.body.GetLinearVelocity().y); 
    } 
} 

내가 그것을 재미 몸이 항상 하강 나는 이미 하강에도 불구하고 상황을 한 것으로 찾습니다 debug는 0의 값을 반환합니다.

나는 시뮬레이트하려는 것을 시뮬레이션하기위한 해결책이나 다른 제안을 듣고 싶습니다.

들으

답변

2

는 오히려 속도를 설정하는 것보다, 당신은 중력을 취소 할 힘을 적용해야합니다. 당신이 방금 속도를 설정한다면, 중력은 매 단계마다 여전히 작은 비트를 내릴 수 있습니다. 힘은 중력이 적용됩니다 것과 같아야합니다, 그래서 계정에 중력 벡터와 물체의 질량해야 :

body.ApplyForce(body.GetMass() * -world.GetGravity(), body.GetWorldCenter()); 

을 ... 당신은 모든 전에이 을 할 필요가 시간 단계.

관련 문제