XNA - 如何在x秒后使图像消失?

时间:2013-05-10 00:04:19

标签: image xna disposing

很抱歉打扰每个人,我找不到任何有关XNA的好教程,所以我只是来这里寻求帮助,那么在处置之前你如何让它等待?

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.Black);
        // TODO: Add your drawing code here
        mBatch.Begin();
        mBatch.Draw(mTheQuantumBros2, new Rectangle(300, 150, mTheQuantumBros2.Width, mTheQuantumBros2.Height), Color.White);
        //How to make it wait for 3 seconds before disposing?
        mBatch.Dispose();
        mBatch.End();
        base.Draw(gameTime);
    }

2 个答案:

答案 0 :(得分:0)

您可以使用经过的时间,因此在应用程序打开X秒后它将消失

if (gameTime.TotalGameTime.TotalSeconds <= 3)
{
    mBatch.Begin();
    mBatch.Draw(mTheQuantumBros2, 
        new Rectangle(300, 150, mTheQuantumBros2.Width, mTheQuantumBros2.Height),
        Color.White);
    //How to make it wait for 3 seconds before disposing?
    mBatch.End();
}

答案 1 :(得分:0)

您可以根据您的期望获得不同的方法。 如果要获得平滑的淡出效果,可以使用Color参数来实现透明度: mBatch.Draw(mTheQuantumBros2, new Rectangle(300, 150, mTheQuantumBros2.Width, mTheQuantumBros2.Height), new Color(new Vector4(1.0f, 1.0f, 1.0f, 1.0f - (currentTime / totalTime))));
currentTime 保存当前时间, totalTime 是您希望图像完全消失的时间。

如果您需要多次执行此类动画,我建议您创建一个Timer类,它可以帮助您轻松浏览时间跨度。