XNA ゲームに単純なカウンターを実装しようとしています。これは十分に簡単だと思いました。次のコードがあります。
elapsed = gameTime.ElapsedGameTime.TotalMilliseconds;
timer -= (int)elapsed;
if (timer <= 0)
{
timer = 10; //Reset Timer
}
しかし、経過時間は 0.0 から変化しません。ここで明らかな何かが欠けていますか?私はそうだと思います。私は gameTime を上部で宣言し、通常どおり初期化しました。
尋ねられたように、ここにもう少しコードがあります:
public class Game1 : Microsoft.Xna.Framework.Game {
private GameTime zombieTime;
public Game1()
{
zombieTime = new GameTime();
// Other (unrelated) stuff here
}
protected void AddZombie()
{
elapsed = zombieTime.ElapsedGameTime.TotalMilliseconds;
timer -= (int)elapsed;
if (timer <= 0)
{
timer = 10; //Reset Timer
Zombie zombie = new Zombie(ScreenWidth, ScreenHeight, random);
zombie.LoadContent(this.Content, "ZombieSprites/ZombieLeft1");
zombies.Insert(0, zombie);
}
}
protected void Update()
{
AddZombie();
// Other game update stuff here
}
}
申し訳ありませんが、元のコード スニペットで十分だと思いました。人々がタイマーの例を投稿し、上記で使用した方法を使用したいくつかのページをオンラインで読みました。経過時間が常に 0 になるように更新が十分に高速であることについて、ここで行われたコメントのいくつかを理解しています。