0

不好意思打扰大家了,我在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);
    }
4

2 回答 2

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();
}
于 2013-05-10T00:13:37.790 回答
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 类,它可以帮助您轻松导航时间跨度。

于 2013-05-13T18:01:56.157 回答