2012-11-04 71 views
0

我是新来的XNA 4.0,我想创建一个太空飞船射击游戏。当我杀死敌人时,我想绘制一个爆炸纹理,它的死亡和爆炸纹理会消失2秒。我设法在敌人死亡时通过使用布尔值来绘制爆炸纹理,如果敌人死亡或不在绘制方法中,但我不知道如何在2秒后将其移除。感谢您的帮助。XNA擦除/删除纹理2D

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

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

回答

0

您需要使用gameTime变量来计算Update方法中的时间。 当你的计数器达到2s时,只要让alive = false; 但更好的主意是让你的爆炸精灵的类更新和绘制方法 并处理从那里的计数和渲染。

1

对爆炸开始和结束之间的两秒间隔进行类似检查。你可以只保存爆炸的时间和检查它是否是2秒或更年长比当前的时间,像这样:

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

然后你做一个检查,看是否是时候删除爆炸动画:

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

你可以把explosionTime你的敌人类中,仅删除了敌人就已经死了,爆炸已播放动画之后。