используя MDX Sprite.Draw2D () и проблемы с позицией, с которыми я столкнулся - PullRequest
0 голосов
/ 17 декабря 2009

Я пытаюсь использовать класс Sprite в Microsoft.DirectX.Direct3D для рисования некоторых спрайтов на моем устройстве.

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

GameObject - класс, который я написал, в котором хранится вся основная информация, необходимая для игрового объекта (например, графика, текущее положение игры, вращение и т. Д.) Моя игральная кость со Sprite.Draw2D - это параметр Position (здесь устраивает go.Position) если я передаю go.Position, спрайт отрисовывается в 0,0 независимо от значения Position объекта. Я протестировал жесткое кодирование в «новой точке (100, 100)», и все объекты нарисовали на 100,100. Я не могу понять, почему переменная неправильно удовлетворяет параметру. Я немного погуглил, и многие люди говорили, что Sprite.Draw2D в MDX глючит и работает нестабильно, но я не нашел решения. Поэтому я призываю «Переполнение стека» пролить свет на эту проблему! Fixed

1 Ответ

0 голосов
/ 17 декабря 2009

Да sprite.Draw2D некоторое время дает проблемы. Вы пробовали спрайт. Работать хорошо для меня. Вот пример для Sprite.Draw.

GameObject go = gameDevice.Objects[x];<br> SpriteDraw.Draw2D(go.ObjectTexture, new Vector3(go.CenterPoint.X,go.CenterPoint.Y,O), new Vector3(go.Position.X,go.Position.Y,O), Color.White); и для вращения вы можете использовать матричное преобразование спрайта.

...