我是XNA 4.0的新手,我想创建一个太空船射击游戏。当我杀死敌人时,我想绘制一个爆炸纹理,在那里死亡和爆炸纹理将消失2秒。我设法绘制一个爆炸纹理,当敌人死亡时使用布尔如果敌人在Draw方法中死亡或者不死,但我不知道如何在2秒后移除它。谢谢你的帮助。
if (alive)
sp.Draw(enemyTexture, enemyPos, Color.White);
else
sp.Draw(explode, enemyPos, Color.White);
答案 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方法为爆炸精灵制作类 并从那里处理计数和渲染。