我是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;
}
答案 0 :(得分:0)
为什么不在使用技能时添加对计时器状态的检查?你知道一个事实,当一个技能被使用时,能量不会达到最大值 - 如果技能尚未运行,请继续使用技能时启动计时器。
function useSkill(skill) {
if (!isTimerRunning) {
timer.Start();
}
invokeSkillUseMethodHere();
}
答案 1 :(得分:0)
1)为你的if添加另一个条件,即(if count >= 35 && timerRegen == false)
,然后在你的技能结束时添加timerRegen = true
或类似的东西 - 具体是黑暗的,因为我没有关注你只看到你的计时器的整个逻辑
2)你需要把时间变量放在计时器功能的范围之外,这样技能才能改变它。
e--感谢下面的用户指出错误