0

XNA 4.0 は初めてで、宇宙船シューティング ゲームを作成したいと考えています。敵を倒すと、爆発テクスチャを描きたいと思います。爆発テクスチャは 2 秒間消えます。Drawメソッドで敵が死んだかどうかのブール値を使用して、敵が死んだときに爆発テクスチャを描画することができましたが、2秒後にそれを削除する方法がわかりません。ご協力ありがとうございました。

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

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

2 に答える 2

1

爆発の開始から終了までの 2 秒間について、同様のチェックを行います。次のように、爆発の時間を保存して、現在の時間より 2 秒以上古いかどうかを確認できます。

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

次に、爆発アニメーションを削除する時期かどうかを確認します。

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

敵のクラスの中に入れてexplosionTime、敵が死んで爆発アニメーションが再生された後にのみ敵を削除することができます。

于 2012-11-04T13:57:42.523 に答える
0

gameTime 変数を使用して Update メソッド内の時間をカウントする必要があります。カウンターが 2 秒に達したら、make alive = false; にするだけです。しかし、更新メソッドと描画メソッドを使用して爆発スプライトのクラスを作成し、そこからカウントとレンダリングを処理することをお勧めします。

于 2012-11-04T13:55:58.447 に答える