본질적으로 2 차원 플래너 인 Farseer 물리 엔진을 사용하는 XNA에서 게임을 개발 중입니다. 물리 엔진에 대한 원하는 단위 대 스프라이트를 그리는 방법을 해결하는 데 문제가 있습니다.2D 게임 액터 좌표 대 스크린 좌표 좌표
예를 들어 저는 사람을위한 스프라이트가 있습니다. 물리학 모양은 단순히 0.8 x 1.8 (미터)이며 위치는 미터입니다. 중력 및 실제 스케일링을 매우 간단하게 만듭니다. (나는 왼쪽 하단에서도 원점을 좋아하지만 upsidedown을 생각할 수있다.)
그러나 2d에서 렌더링하는 표준 방법은 원점을 기준으로 1 : 1 픽셀 비율로 작동하는 SpriteBatch.Draw입니다. 왼쪽 위.
이 조정 방법은 무엇입니까? 처음에는 수작업으로 방금 사각형의 크기/크기를 수동으로 조정하고 SpriteBatch의 소스/대상 매개 변수를 사용했지만 속도가 느리고 속도가 느린 것처럼 보였습니다. 이상적으로는 투영 행렬을 설정 한 다음 물리 객체의 정보를 사용하여 모든 것을 그립니다. 아아, 그것이 걸리는 모든 사각형은 정수가 아니기 때문에 유동적이지 않으므로 잘 동작하지 않습니다 ...
다른 프로젝트 (OpenGL)에서는보기 매트릭스를 적절한 크기로 설정하고 렌더링했습니다 그 (것)들에 짜임새를 가진 쿼드. XNA에서 어떻게 접근해야합니까? 아니면 XNA를 사용하는 사람들이 가지고있는 비밀 방법이 있습니까?
나는 카메라를 분류 했으므로 문제는 없다. 결국 뷰 매트릭스에 불과하다. 그러나 [0.8, 1.8] 크기로 플레이어를 [0.2, 4.1] 위치에 그려서 화면에 올려 놓으려는 경우 SpriteBatch에서 매트릭스 변환을 수행하지 않아도됩니다. – XwipeoutX