2012-11-04 72 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你的敵人類中,僅刪除了敵人就已經死了,爆炸已播放動畫之後。