2012-06-30 2 views
1

몸에 다른 밀도/질량을 주면 같은 속도로 떨어집니다. 공기 저항이없는 곳에서 질량이 떨어지는 속도에 영향을 미치지 않는다는 사실을 알고 있습니다.Box2D 중력이 다른 질량에 영향을 미침

하지만 논리적으로 어떻게하면 풍선과 벽돌을 다른 속도로 떨어 뜨릴 수 있을까요? 내가 생각할 수있는 가장 가까운 방법은 setGravityScale을 사용하여이 모든 것을 설정하는 것입니다.

답변

2

하나의 옵션은 중력을 비활성화하고 각 프레임에서 원하는 가속도를 적용하는 것입니다. 그게 내 게임에 들어간 길입니다. Box2d는 중력에 내장되어있어 빠른 시뮬레이션이 가능하지만 맞춤 설정이 쉽지 않습니다.

중력을 사용하지 않도록 설정 한 후에는 개체에 적용 할 가속 공식을 결정해야합니다. 유체 저항에 대한 몇 가지 다른 모델이 있습니다 (Wikipedia 확인). 따라서 가장 잘 보이는 것을 실험하고 선택해야합니다.

6

상자 2d에서 공기 감속 효과를 시뮬레이트하는 가장 좋은 방법은 "댐핑"을 사용하는 것입니다.

참조 : http://www.box2d.org/manual.html

"댐핑은 몸의 세계 속도를 줄이기 위해 댐핑 마찰과 다른 마찰은 접촉으로 발생하기 때문에 사용되는 댐핑은 마찰을 대체하지 않고 두 가지 효과를 함께 사용되어야한다.. . "

"감쇠 매개 변수는 0과 무한대 사이에 있어야합니다. 0은 감쇠가 없음을 의미하고 무한대는 완전한 감쇠를 의미합니다. 일반적으로 0과 0.1 사이의 감쇠 값을 사용합니다. 일반적으로 선형 감쇠를 사용하지 않습니다. 뜨는."

bodyDef.linearDamping = 0.0f;

bodyDef.angularDamping = 0.01f;

관련 문제