2014-10-03 2 views
0

저는 AndEngine과 Box2D를 처음 사용합니다. 그래서 나와 함께 곰.AndEngine Box2D 확장 - 크기 조정

새로운 프로젝트를 만들고 480x800 카메라를 설치하고 32x32 스트라이프를 추가하고 지구 중력에서 물리 세계를 만들고 스트라이프를 떨어 뜨 렸습니다. 보라, 보라, 그것은 떨어졌다. 그러나 그것은 나에게 자연스럽지 않은 것처럼 보였다. 너무 느렸다.

그런데 환경이 픽셀 인 반면 중력은 미터 (m/s2)라는 것을 깨달았습니다. 미터와 픽셀 사이의 변환은 어디에서 수행됩니까? 어딘가에서 장면 뒤에는 가정이 있어야합니다. 내가 제어 할 수 있습니까?

Box2D는 스트라이프를 지상 100m에서 떨어 뜨리거나 (매우 느린 거리에서 보거나 스트레칭을 지상에서 1m 이상 떨어 뜨리는 지 여부) 어떻게 알 수 있습니까? 매우 빠름)?

변환이 실제 문제인지 테스트하려면 중력에 10을 곱하고 "자연 스러움"을 향상 시켰습니다. 그러나 픽셀을 미터로 변환하는보다 정교한 방법이 있어야한다고 생각합니다.

미리 감사드립니다. 나는 정말로 당신의 의견에 감사드립니다.

+0

모든 픽셀 치수를 픽셀에서 물리 단위로 변환하는 일정한 값으로 나눕니다. 물리 단위를 픽셀로 변환하기 위해 동일한 값으로 물리 차원을 곱하십시오. http://www.box2d.org/forum/viewtopic.php?f=3&t=9827 – iforce2d

답변

0

@ iforce2d와 마찬가지로 댓글을 달았습니다. AndEngine에서 기본값은 32이므로 32 픽셀을 1 미터로 간주합니다. 픽셀을 미터로 변환 할 때 픽셀을이 값으로 나눕니다. 미터에서 픽셀로 변환 할 때이 값을 곱하십시오. 이 값은 org.andengine.extension.physics.box2d.util.constants.PhysicsConstants 클래스에서 찾을 수 있습니다.

그런 다음 비율을 지정하지 않으면 PhysicsFactory.create... 방법에서 사용됩니다. 이 메소드는 물리 바디를 만들고 스프라이트 크기를 픽셀 단위로 측정하고 미터를 Box2D에 전달합니다. 또한 PhysicsConnector 클래스 생성자에서 사용됩니다. 32가 당신에게 어울리지 않는다면 당신 자신의 가치를 사용하십시오, 그러나 당신은 매번 일관성을 유지해야합니다.

관련 문제