无法使用SpriteEffects进行翻转

时间:2013-11-12 08:56:20

标签: c# xna

嘿我试图翻转我的一个背景图像所以在后台类的构造函数中我使用SpriteEffects所以在构造时我可以判断我是否想要翻转但是通过这样做没有任何反应。我尝试了一些事情,但我很难过。

任何人都可以帮我吗?

BackgroundSprite

public class BackgroundSprite : Sprite
{

 public BackgroundSprite(string name, TextureData textureData, SpritePresentationInfo spritePresentationInfo,
   SpritePositionInfo spritePositionInfo,SpriteEffects spriteEffects)
    : base(name, textureData, spritePresentationInfo, spritePositionInfo)
{

}
//-----------------------------------------------------------------------------------
//  Use this if we do not want to use the parents
//-----------------------------------------------------------------------------------
public override void Update(GameTime gameTime)
{
    base.Update(gameTime);
}

//-----------------------------------------------------------------------------------
//  Use this if we do not want to use the parents
//-----------------------------------------------------------------------------------
public override void Draw(GameTime gameTime)
{
    base.Draw(gameTime);
}
}

主要

//Get the texture to draw.
            TextureData sky3TextureData = textureManager.Get("Sky_Back");
            //How to draw the Texture
            SpritePresentationInfo sky3PresentationInfo = new SpritePresentationInfo(sky3TextureData.FULLSOURCERECTANGLE, 0.8f);
            SpritePositionInfo sky3PositionInfo = new SpritePositionInfo(new Vector2(1600, 0), sky3TextureData.Width(), sky3TextureData.Height(), 0, 1f, Vector2.Zero);
            //Add the sprite to the game.
            SpriteEffects flip = SpriteEffects.FlipHorizontally;
            this.backgroundSprite = new BackgroundSprite("Sky_Back", sky3TextureData, sky3PresentationInfo, sky3PositionInfo, flip);
            spriteManager.Add(backgroundSprite);

1 个答案:

答案 0 :(得分:0)

在以下代码中:

public BackgroundSprite(string name, TextureData textureData, SpritePresentationInfo       spritePresentationInfo,
   SpritePositionInfo spritePositionInfo,SpriteEffects spriteEffects)
    : base(name, textureData, spritePresentationInfo, spritePositionInfo)
{

}

您向BackgroundSprite发送SpriteEffects,但不会在其他地方发送或使用SpriteEffects。似乎必须将SpriteEffects添加到Base构造函数中。

public BackgroundSprite(string name, TextureData textureData, SpritePresentationInfo       spritePresentationInfo,
   SpritePositionInfo spritePositionInfo,SpriteEffects spriteEffects)
    : base(name, textureData, spritePresentationInfo, spritePositionInfo, spriteEffects)
{

}