0

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

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

现在我对这个系统有两个问题。第一个是当我的计时器因为你达到你的 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;
}
4

2 回答 2

0

为什么不在使用技能时添加对计时器状态的检查?你知道一个事实,当一个技能被使用时,能量不是最大的——如果它还没有运行,那么当一个技能被使用时,继续并启动计时器。

function useSkill(skill) {
    if (!isTimerRunning) {
      timer.Start();
    }
    invokeSkillUseMethodHere();
}
于 2013-10-16T23:32:52.880 回答
0

1)在你的if中添加另一个条件,即(if count >= 35 && timerRegen == false)然后在你的技能结束时添加timerRegen = true或类似的东西——细节是模糊的,因为我不遵循你的整个逻辑,只看到你的计时器

2)您需要将时间变量放在计时器函数的范围之外,以便技能改变它。

e-- 感谢以下用户指出错误

于 2013-10-16T23:36:47.257 回答