2013-01-27 1 views
0

XNA에서 2D match3 게임을 개발합니다. 핵심 논리 및 애니메이션이 완료됩니다. RenderTarget2D를 사용하여 전체 보드를 그립니다. 보드는 64x64 텍스처 (타일)가있는 8 개의 행과 8 개의 열을 가지며 클릭하고 이동할 수 있습니다. 마우스 교차를 캡처하기 위해 각 타일에 대해 SourceRectangles를 사용합니다. 물론 SourceRectangles의 텍스처 크기는 64x64입니다.Scaling RenderTarget2D가 스케일되지 않습니다. SourceRectangles

RenderTarget2D를 사용하여 전체 모니터 해상도와 측면을 지원하기 위해 전체 보드의 크기를 줄이고 싶습니다. 먼저 모든 타일을 RenderTarget2D에 그립니다. 그런 다음 RenderTarget2D를 부동 소수점 계수로 축소합니다. 마지막으로 화면에 RenderTarget2D를 그립니다. 결과적으로 보드 전체가 제대로 축소됩니다 (예 : 모든 텍스처가 64x64에서 50x50로 축소됨). 그러나 SourceRectagles는 크기가 조정되지 않고 64x64로 유지되고 마우스 교차로는 적절한 타일로 캡처되지 않습니다.

왜 RenderTarget2D의 크기를 조절해도 처리되지 않는 이유는 무엇입니까? 어떻게이 문제를 해결할 수 있습니까?

답변

1

이 문제는 다르게 처리해야합니다. 텍스쳐의 소스 사각형은 바로 그것입니다 - 버튼 직사각형으로 사용하지 마십시오. 그렇지 않으면 문제가 생길 것입니다.

처음에는 원본 사각형과 크기가 같지만 게임 창에 맞게 크기가 조정 된 교차점을 확인하여 다른 Rectangle hitboxRectangle을 사용하십시오.