views:

101

answers:

1

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 draws 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

A: 

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];
SpriteDraw.Draw2D(go.ObjectTexture, new Vector3(go.CenterPoint.X,go.CenterPoint.Y,O), new Vector3(go.Position.X,go.Position.Y,O), Color.White);
and for rotation u can use matrix transform of sprite.

Firoz
This was very close to what i did in the end to fix it and i would of been scratching my head for hours more if it wasnt for your answer. thanks :)
Skintkingle