using MDX Sprite.Draw2D() and the positional problems i have encountered
I'm trying to use the Sprite Class in Microsoft.DirectX.Direct3D to draw some sprites to my device.
GameObject go = gameDevice.Objects[x];
SpriteDraw.Draw2D(go.ObjectTexture,
go.CenterPoint,
go.DegreeToRadian(go.Rotation),
go.Position,
Color.White);
GameObject is a class i wrote, in which all the basic information required of a game object is stored (like graphics, current game position, rotation, etc) My dice with Sprite.Draw2D is the Position parameter (satisfied here with go.Position) if i pass go.Position, the sprite d开发者_如何学编程raws at 0,0 regardless of the Position value of the Object. i tested hard-coding in "new Point(100, 100)" and all objects drew at 100,100. I cant figure out why the variable doesnt correctly satisfy the parameter. I've done some googling, and many people have said MDX's Sprite.Draw2D is buggy and unstable, but i didnt find a solution. Thus i call upon Stack Overflow to hopefully shed some light on this problem! Fixed
Yes sprite.Draw2D some time gives problem. Have u tried sprite.Draw its working fine for me. Here is the sample for Sprite.Draw.
GameObject go = gameDevice.Objects[x];
and for rotation u can use matrix transform of sprite.
SpriteDraw.Draw2D(go.ObjectTexture,
new Vector3(go.CenterPoint.X,go.CenterPoint.Y,O),
new Vector3(go.Position.X,go.Position.Y,O),
Color.White);
精彩评论