gpt4 book ai didi

xna - XNA 中部分 Sprite 的旋转

转载 作者:行者123 更新时间:2023-12-04 06:32:47 24 4
gpt4 key购买 nike

我有一个宽度为 250 像素、高度为 2000 像素的纹理。根据各种条件(某种 Sprite 表,是的)在屏幕上绘制 250x250 的一部分。我想要的只是将它绘制在一个固定的目标矩形内并进行一些旋转。是否可以?

最佳答案

是的。 以下是有效旋转目标矩形的方法:

看看overloads for SpriteBatch.Draw .

请注意,没有一个采用 Rectangle 的重载。作为目的地采用旋转参数。因为这样的事情没有多大意义。关于您希望如何旋转目的地是模棱两可的。

但是您可以通过仔细使用 position 来实现与设置目标矩形相同的效果。和 scale参数。将这些与 origin (缩放和旋转的质心,相对于 sourceRectangle 以像素为单位指定)和 rotation参数来达到你想要的效果。

(另一方面,如果您想“适应”矩形 - 在旋转后有效缩放 - 您还必须使用 transformMatrix 参数到 Begin 。)

现在 - 你的问题在这一点上不是很清楚:但如果你想要的效果更像是旋转你的源矩形,这不是你可以用普通的 ol'SpriteBatch 实现的。

实现这一点的快速而简单的方法是设置一个视口(viewport)作为目标矩形。然后在其中绘制旋转的 Sprite 。请注意,SpriteBatch 的坐标系基于视口(viewport),而不是屏幕。

“更好”(但更难实现)的方法是根本不使用 SpriteBatch,而是实现您自己的 Sprite 绘图,这将允许您旋转纹理坐标。

关于xna - XNA 中部分 Sprite 的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com