按下 Mp 恢复技能树按钮后,技能点应该减 1,然后法力点加 1。然后我需要存储它,然后运行设定的间隔,但我无法让它正常工作。我的函数看起来没问题,但我无法复制我在 Python 中所做的工作。
我不知道如何解决这个问题;我在规定的时间间隔内确实是新人。我确实尝试过:
window.setInterval(function () {
ManaPointsregen(Mpregen);
}, 1000);
这是我的 Manaregen JavaScript 函数(这是我第二次尝试不同的方法,但仍然无法让它工作):
var rebirths = 0;
var HitPoints = 0;
var MaxHitpoints = 10;
var ManaPoints = 0;
var MaxManapoints = 10;
var SkillPoints = 0;
function buyRebirth() {
var rebirthCost = Math.floor(10 * Math.pow(1.1, rebirths));
if (cookies >= rebirthCost && rebirths < 1){
cookies = cookies - rebirthCost
HitPoints = HitPoints + 10;
ManaPoints = ManaPoints + 10;
SkillPoints = SkillPoints + 1;
rebirths = rebirths + 1;
document.getElementById("rebirths").innerHTML = rebirths;
document.getElementById('cookies').innerHTML = cookies;
document.getElementById("HitPoints").innerHTML = HitPoints;
document.getElementById("ManaPoints").innerHTML = ManaPoints;
document.getElementById("rebirthCost").innerHTML = rebirthCost;
document.getElementById("SkillPoints").innerHTML = SkillPoints;
}
if (cookies >= rebirthCost)
if(rebirths >= 1){
cookies = cookies - rebirthCost
rebirths = rebirths + 1;
SkillPoints = SkillPoints +1;
document.getElementById('cookies').innerHTML = cookies;
document.getElementById("rebirthCost").innerHTML = rebirthCost;
document.getElementById("rebirths").innerHTML = rebirths;
document.getElementById("SkillPoints").innerHTML = SkillPoints;
}
var nextCost5 = Math.floor(10 * Math.pow(1.1, rebirths));
document.getElementById('rebirthCost').innerHTML = nextCost5;
}
var Mpregen = 0;
function Manaregen(){
if (ManaPoints < MaxManapoints && rebirths >- 1 && MaxManapoints >=0){
ManaPoints = ManaPoints +1;
set.interval( Manaregen, 1000);
}
document.getElementById("ManaPoints").innerHTML = ManaPoints;
}
function ManaPointsregenbuy(){
if (SkillPoints > 0 && rebirths >=1)
SkillPoints = SkillPoints - 1;
Mpregen = Mpregen +1;
set.interval(Manaregen, 1000);
document.getElementById("SkillPoints").innerHTML = SkillPoints;
document.getElementById("Mpregen").innerHTML = Mpregen;
}
JavaScript 设置时间:
var cookies = 0;
function cookieClick() {
cookies = cookies + Strength;
document.getElementById("cookies").innerHTML = cookies;
checkCursor()
}
var UP_INTERVAL = 1000;
setInterval(cookieClick, UP_INTERVAL);
html 按钮代码:(我还没有使用按钮 ID 进行任何操作)
<button id="Mpreg" onclick="ManaPointsregenbuy">Mp regen</button>
<br />
我期望从技能树购买MP恢复后:
我的法力每 1000 毫秒增加 1(模拟法力再生),直到达到我的最大法力。但按钮的实际输出什么也没做。我不知道如何设置一个工作 setinterval 函数来执行此操作。
最佳答案
线路
onclick="ManaPointsregenbuy"
应该是
onclick="ManaPointsregenbuy()"
然后你有几行像
set.interval(.....)
设置间隔的正确语法如下所示
var myInterval = setInterval(callbackFunction, 1000);
这会设置一个间隔,可以通过以下方式取消
clearInterval(myInterval)
您可以在 https://www.w3schools.com/jsref/met_win_setinterval.asp 找到更多信息
关于javascript - 法力恢复升级设定间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56285185/