c# - Microsoft Xna Texture2D 和旋转

标签 c# rotation xna texture2d

我有一组图像,其中每个图像都需要能够旋转到 90 度、180 度和 270 度。所有这些图像都是 Texture2D 类型。是否有内置功能可以为我完成此操作?或者我应该为每个图像加载额外的旋转图像吗?或者有更好的方法来完成这项任务吗?

最佳答案

您可以在使用 SpriteBatch.Draw 将纹理绘制到缓冲区时旋转(和缩放)纹理,尽管您需要指定大部分(或全部)参数。角度以弧度表示。

SpriteBatch.Begin();
angle = (float)Math.PI / 2.0f;  // 90 degrees
scale = 1.0f;
SpriteBatch.Draw(myTexture, sourceRect, destRect, Color.White, angle,
                 position, scale, SpriteEffects.None, 0.0f);
SpriteBatch.End();

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx

您也可以加载图像的预旋转副本,但您可能会听到通常的过早优化讲座。

关于c# - Microsoft Xna Texture2D 和旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527730/

相关文章:

XNA MediaPlayer 加载音乐计时

c# - 如何使用XmlSerializer序列化派生实例?

c# - 来自 Windows 窗体的 MVC WebAPI 身份验证

c# - IIS 和 NET Core HTTP 错误 500.30 - ANCM 进程内启动失败 .net core 3.1

winforms - SharpGL - 用网格绘制球体并为每个球体附加颜色

android - 以编程方式禁用和启用 Android Activity 中的方向更改

android - 为什么在 Android 中设备旋转后调用 Fragment 中的 onCreateView 两次?

C# XNA 2D 平台跳跃逻辑

c# - 如何使用栈代替列表?

c# - 如何更新代码中的客户端端点绑定(bind)