我正在尝试使用Microsoft.DirectX.Direct3D中的Sprite类向我的设备绘制一些精灵。
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,则无论Object的Position值如何,精灵都会绘制0,0。 我在“新点(100,100)”中测试了硬编码,所有对象都是100,100。 我无法弄清楚为什么变量不能正确满足参数。 我已经做了一些谷歌搜索,很多人说MDX的Sprite.Draw2D是错误和不稳定的,但我没有找到解决方案。 因此,我呼吁Stack Overflow希望能够解决这个问题! 固定
答案 0 :(得分:0)
是的sprite.Draw2D有时会出问题。你试过sprite.Draw它对我来说很好。 以下是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);