0

我正在尝试使用 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,无论对象的位置值如何,精灵都会在 0,0 处绘制。我在“new Point(100, 100)”中测试了硬编码,所有对象都在 100,100 处绘制。我无法弄清楚为什么变量不能正确满足参数。我做了一些谷歌搜索,很多人说 MDX 的 Sprite.Draw2D 有错误且不稳定,但我没有找到解决方案。因此,我呼吁 Stack Overflow 希望能对这个问题有所了解!固定的

4

1 回答 1

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);
对于旋转,你可以使用精灵的矩阵变换。

于 2009-12-17T05:09:18.190 回答