XNA擦除/删除Texture2D

时间:2012-11-04 13:48:55

标签: xna

我是XNA 4.0的新手,我想创建一个太空船射击游戏。当我杀死敌人时,我想绘制一个爆炸纹理,在那里死亡和爆炸纹理将消失2秒。我设法绘制一个爆炸纹理,当敌人死亡时使用布尔如果敌人在Draw方法中死亡或者不死,但我不知道如何在2秒后移除它。谢谢你的帮助。

if (alive)
sp.Draw(enemyTexture, enemyPos, Color.White);

else
sp.Draw(explode, enemyPos, Color.White);

2 个答案:

答案 0 :(得分:1)

在爆炸开始到结束之间进行两次相似的检查。您可以节省爆炸时间并检查它是否比当前时间早2秒或更长时间,如下所示:

TimeSpan explosionTime;
if (itsTimeToExplode)
    explosionTime = gameTime.TotalGameTime;

然后你检查是否是时候删除爆炸动画了:

if (gameTime.TotalGameTime.TotalMilliseconds - explosionTime.TotalMilliseconds >= 2000) // 2000 milliseconds is 2 seconds
    RemoveExplosionAnimation();

你可以将explosionTime放入你的敌人类别中,只有在敌人死亡并且已经播放爆炸动画后才删除它。

答案 1 :(得分:0)

您需要使用gameTime变量计算Update方法内部的时间。 当你的计数器达到2s时,只需make alive = false; 但更好的想法是使用update和draw方法为爆炸精灵制作类 并从那里处理计数和渲染。