2009-12-17 5 views
0

내 장치에 스프라이트를 그리려면 Microsoft.DirectX.Direct3D에서 스프라이트 클래스를 사용하려고합니다.MDX Sprite.Draw2D() 및 위치 문제가 발생했습니다.

GameObject go = gameDevice.Objects[x]; 
SpriteDraw.Draw2D(go.ObjectTexture, 
go.CenterPoint, 
go.DegreeToRadian(go.Rotation), 
go.Position, 
Color.White); 

게임 오브젝트는 게임 오브젝트의 필요한 모든 기본적인 정보 (그래픽, 현재 게임의 위치, 회전, 등 같은) 저장되어있는 내가 쓴 클래스입니다 Sprite.Draw2D 나의 주사위는 위치 매개 변수입니다 (여기에 go.Position에 만족) go.Position을 전달하면 Sprite는 Object의 Position 값에 관계없이 0,0을 그립니다. "새 포인트 (100, 100)"에서 하드 코딩을 테스트했으며 모든 객체는 100,100으로 그렸습니다. 변수가 변수를 올바르게 만족시키지 못하는 이유를 파악할 수 없습니다. 나는 인터넷 검색을 해왔고 많은 사람들은 MDX의 Sprite.Draw2D가 버그가 있고 불안정하다고 말했지만 해결책을 찾지 못했습니다. 따라서 스택 오버플로를 호출하여이 문제에 대한 희망을 밝힐 수 있습니다! 고정

답변

0

예 예. sprite.Draw2D가 문제를 발생시킵니다. sprite를 시도해 보았습니다. 나를 위해 잘 작동합니다. 다음은 Sprite.Draw의 샘플입니다.

GameObject go = gameDevice.Objects[x];
SpriteDraw.Draw2D(go.ObjectTexture, new Vector3(go.CenterPoint.X,go.CenterPoint.Y,O), new Vector3(go.Position.X,go.Position.Y,O), Color.White);
회전에 대해 sprite의 행렬 변환을 사용할 수 있습니다.

+0

이것은 내가 그것을 고치기 위해 결국했던 것과 아주 가깝다. 그리고 나는 당신의 대답을 위해 wasnt 한 경우에 더 많은 시간 동안 내 머리를 긁적 거리고있을 것이다. 감사 :) – Skintkingle