用一个角度绘制图像

编辑:下面的图片不应该有空白。 我只是想告诉你,我试图从1×64图像创建一个矩形,定位如第二张图片所示

我知道如何在XNA中旋转图像

2

但是如何以这种方式在这个角度画一个精灵呢?

2

我似乎无法find答案,我在想法

你想要的是一个扭曲的matrix 。 XNA没有内置的机制来创建一个。 幸运的是,我们可以写我们自己的:

Matrix CreateSkewX(float angle) { Matrix skew = Matrix.Identity; skew.M12 = (float)Math.Tan((double)angle); return skew; } Matrix CreateSkewY(float angle) { Matrix skew = Matrix.Identity; skew.M21 = (float)Math.Tan((double)angle); return skew; } 

(注意:这些是未经testing的,我可能会颠倒X和Y.)

看看这个答案的更多细节。

你可以用三维绘制。 实际上围绕“向上”轴旋转。 然而,实际上很讽刺的是,你已经展示了如何完成它:你可以垂直分割你的精灵,把它们从彼此的小偏移处拉开。 但是请注意,这样会使精灵扭曲,而不是实际旋转精灵。 不知道你的应用程序是否足够好,我不知道你应该做什么。 我想说,如果你不得不把它旋转45度,那么最好是制作一个“VertexPositionTexture”的四边形,你可以自由定位和旋转,然后设置一个相机(投影matrix),然后渲染它,使用你想要的纹理。