我是新来的XNA 4.0,我想创建一个太空飞船射击游戏。当我杀死敌人时,我想绘制一个爆炸纹理,它的死亡和爆炸纹理会消失2秒。我设法在敌人死亡时通过使用布尔值来绘制爆炸纹理,如果敌人死亡或不在绘制方法中,但我不知道如何在2秒后将其移除。感谢您的帮助。XNA擦除/删除纹理2D
if (alive)
sp.Draw(enemyTexture, enemyPos, Color.White);
else
sp.Draw(explode, enemyPos, Color.White);
我是新来的XNA 4.0,我想创建一个太空飞船射击游戏。当我杀死敌人时,我想绘制一个爆炸纹理,它的死亡和爆炸纹理会消失2秒。我设法在敌人死亡时通过使用布尔值来绘制爆炸纹理,如果敌人死亡或不在绘制方法中,但我不知道如何在2秒后将其移除。感谢您的帮助。XNA擦除/删除纹理2D
if (alive)
sp.Draw(enemyTexture, enemyPos, Color.White);
else
sp.Draw(explode, enemyPos, Color.White);
您需要使用gameTime变量来计算Update方法中的时间。 当你的计数器达到2s时,只要让alive = false; 但更好的主意是让你的爆炸精灵的类更新和绘制方法 并处理从那里的计数和渲染。
对爆炸开始和结束之间的两秒间隔进行类似检查。你可以只保存爆炸的时间和检查它是否是2秒或更年长比当前的时间,像这样:
TimeSpan explosionTime;
if (itsTimeToExplode)
explosionTime = gameTime.TotalGameTime;
然后你做一个检查,看是否是时候删除爆炸动画:
if (gameTime.TotalGameTime.TotalMilliseconds - explosionTime.TotalMilliseconds >= 2000) // 2000 milliseconds is 2 seconds
RemoveExplosionAnimation();
你可以把explosionTime
你的敌人类中,仅删除了敌人就已经死了,爆炸已播放动画之后。