【发布时间】:2013-02-05 19:12:17
【问题描述】:
我正在尝试在我的 XNA 游戏中实现一个简单的计数器。认为这很简单。我有以下代码:
elapsed = gameTime.ElapsedGameTime.TotalMilliseconds;
timer -= (int)elapsed;
if (timer <= 0)
{
timer = 10; //Reset Timer
}
但经过的时间从 0.0 开始不会改变。我在这里遗漏了一些明显的东西吗?我怀疑我是。我在顶部声明了 gameTime 并像往常一样初始化。
按照要求,这里还有一些代码:
公共类 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
}
}
对不起,我相信原始代码 sn-p 就足够了。我在网上阅读了一些页面,人们发布了计时器的示例,并使用了我上面使用的方法。我了解这里提出的一些关于更新速度足够快的 cmets,因此经过的时间将始终为 0。
【问题讨论】:
-
你有那个代码......在哪里?是什么让它执行?
-
代码在更新方法中。它在每次更新时运行。
-
看起来在您经过的时间上没有调用 start - 我们可以再看一点代码吗?