如何在XNA游戏工作室中旋转Texture2D
本文关键字:旋转 Texture2D 工作室 游戏 XNA | 更新日期: 2023-09-27 18:30:42
嗨,我必须旋转Texture2D,但我不知道为什么。它就像有一张照片,我需要将其旋转 180°,因为它在头上并且应该是正确的。
问题是,我需要在使用spriteBatch.Draw
之前这样做,这可能吗?
纹理将旋转 180 度。
protected override void Draw(GameTime gameTime)
{
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.LinearWrap, DepthStencilState.None, RasterizerState.CullCounterClockwise, null);
spriteBatch.Draw(texture, Position, null, Color.White, (float)Math.PI, new Vector2(texture.Width, texture.Height), 1, SpriteEffects.None, 0);
spriteBatch.End();
base.Draw(gameTime);
}
你也可以使用SpriteEffects垂直翻转纹理:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.LinearWrap, DepthStencilState.None, RasterizerState.CullCounterClockwise, null);
spriteBatch.Draw(texture, Position, null, Color.White, 0, Vector2.Zero, 1, SpriteEffects.FlipVertically, 0);
spriteBatch.End();
base.Draw(gameTime);
}
Draw
方法具有重载,可让您旋转纹理。我不确定我是否理解为什么在绘制纹理之前需要旋转纹理。缩放和旋转通常在绘制过程中完成。正如乔尔指出的那样,旋转是使用弧度完成的,你还需要注意原点,这是你旋转的点。