Javascript:如何停止计时器并启动计时器

时间:2013-10-16 23:23:46

标签: javascript

我是Javascript的新手并决定我的学习和进一步开发的项目是制作视频游戏,而我目前的问题是使用计时器系统。

情况如下。你的角色有能量,当你使用技能时会消耗掉。 (例如:X技能的-5能量损失)。我创建了一个能量再生功能的计时器,每秒可以给你一个能量点。

现在我对这个系统有两个问题。第一个是当我的计时器由于你达到你的CAP能量而熄灭时,它没有再次开始再生,所以如果计时器开始流失怎么能继续?

我的第二个问题是我了解到,当我实际使用这些技能时,5个能量点正在计算成本,这不会重置时间。 (例如:31 .. 32 ..(使用技能-5能量)27 .. 33 .. 34 ......)所以基本上它不会记录定时器的-5能量。

这是我的代码。

var count = character.energy;
var counter = setInterval(timer, 1000); 

function timer() { 
  count += characterstats.energyregen;
  if (count >= 35){
     clearInterval(counter);
  }

  document.getElementById("energy").innerHTML = count;
  character.energy = count;
}

2 个答案:

答案 0 :(得分:0)

为什么不在使用技能时添加对计时器状态的检查?你知道一个事实,当一个技能被使用时,能量不会达到最大值 - 如果技能尚未运行,请继续使用技能时启动计时器。

function useSkill(skill) {
    if (!isTimerRunning) {
      timer.Start();
    }
    invokeSkillUseMethodHere();
}

答案 1 :(得分:0)

1)为你的if添加另一个条件,即(if count >= 35 && timerRegen == false),然后在你的技能结束时添加timerRegen = true或类似的东西 - 具体是黑暗的,因为我没有关注你只看到你的计时器的整个逻辑

2)你需要把时间变量放在计时器功能的范围之外,这样技能才能改变它。

e--感谢下面的用户指出错误