如何在c#中翻转精灵

时间:2011-05-26 23:45:51

标签: c# sprite

我正在制作一款基于XNA游戏开发教程游戏“射击游戏”的小游戏...经过一些试验和错误后,我制作了自己的动画精灵,我可以在屏幕上移动。问题是,他总是面临正确的。

如何更改此图片(下图),以便每次按下按键事件时他都面向正确的方向?!

我对C#很陌生,你可能已经猜到了,我意识到这可能比我想象的要复杂得多,所以我只需要知道当他向左移动时左右移动时如何使精灵面朝右

image

提前谢谢。

3 个答案:

答案 0 :(得分:5)

您也可以将SpriteEffects.FlipHorizontally选项传递给SpriteBatch.Draw()方法。但正如其他人所说,这将比使用精灵表更有开销。

答案 1 :(得分:2)

通常精灵表将包含每个方向的图像。您可以在运行时翻转图像,但它会添加不必要的图像处理。我建议您只需创建一个精灵表,每个动画都会被烘焙,然后找出要在运行时显示的帧。

See an example of a simple sprite sheet here

答案 2 :(得分:0)

SpriteEffects s = SpriteEffects.FlipHorizontally;
int smX = 200; //smx is the 'x' coordinates.

    public void runChar()
    {
        if (Keyboard.GetState().IsKeyDown(Keys.Left))
        {
            smX -= 2;
            s = SpriteEffects.FlipHorizontally;
            //oposite direction.
        }
        else if (Keyboard.GetState().IsKeyDown(Keys.Right))
        {
            smX += 2;
            s = SpriteEffects.None;
            //original direction.
        }
    }

spriteBatch.Draw(sM, new Rectangle(smX, 200, 100, 100), null, Color.White, rotation, new Vector2(50, 50), s, 0f);

这将“翻转”。纹理左右。