2012-05-04 3 views
1

저는 XNA, C#으로 제작 된 게임을 만들고 xml 기반 애니메이션을 사용하고 싶습니다.해상도 독립적 인 애니메이션 용 격자?

XML이이

내가 문제의가있을 것입니다 발견 http://imm.io/odc7이 (죄송 X 좌표가 잘못)처럼 옆으로 객체를 이동이

<Animation> 
<AnimatedObject> 
<Filename>Spaceship_Jet_01</Filename> 
<Flipped>false</Flipped> 
<StartPosition_X>300</StartPosition_X> 
<StartPosition_Y>500</StartPosition_Y> 
<GOTOPosition_X>650</GOTOPosition_X> 
<GOTOPosition_Y>500</GOTOPosition_Y> 
<Time>10000</Time> 
</AnimatedObject> 
</Animation> 

모양을 플레이어의 디스플레이 해상도는 내가 가지고있는 것과는 다르다. 왜냐하면 픽셀이 오브젝트가 어디에서 왔는지와 어디로 가야하는지에 대한 정확한 정보를 입력하기 때문이다.

나는 그리드에 대해 생각해 프로그래머에게 (30,27)에서 (22,27)로 객체를 옮기라고 말할 수 있습니다. 이것은 좋은 해결책입니까? 격자는 해상도와는 독립적이어야하지만 타일 수는 일정해야하며 화면에 객체를 그려야합니다. 즉, 타일의 오른쪽 픽셀 위치를 위치 (22,27)에서 찾은 다음 해당 타일로 오브젝트를 "이동"해야합니다.

더 좋은 방법이 있습니까? XNA로 어떻게 해결할 수 있습니까?

+0

을 새로운 해상도 인자 위치를 수정 예를 들어, x에 대한 0 값은 맨 왼쪽을 의미하고 1은 맨 오른쪽을 의미 할 것입니다. 그런 다음 대상 위치를 쉽게 계산할 수 있습니다. XValue * GraphicsDevice.PresentationParameters.BackBufferWidth; 또는 그 라인을 따라 무엇인가. – neeKo

답변

0

2D 카메라를 사용하는 경우 새보기를 계산하여 새로운 해상도에 맞추기가 어렵지 않으므로 아무런 문제가 없습니다 ... 그리고로드 방법 중 아무 것도 변경하지 않아야합니다 도 논리 ...

당신이 할 수있는,하지만 난 범위 [0..1]의 위치와

  1. 일 같은 돈`t 측정하기 어렵다. 당신이 XML을로드 할 때

  2. 대신 픽셀 x와 y를 설정 대한 백분율을 설정하는 방법 ... 못생긴 ...

    Pos *= NewResolutionSize/DefaultResolutionSize; 
    
+0

감사합니다. Pos * = NewResolutionSize/DefaultResolutionSize; 내 문제를 해결했습니다 – Wolfen

+0

그렇다면 답변을 올바르게 표시해야합니다 ...;) – Blau

관련 문제