javascript - 法力恢复升级设定间隔

标签 javascript html

按下 Mp 恢复技能树按钮后,技能点应该减 1,然后法力点加 1。然后我需要存储它,然后运行设定的间隔,但我无法让它正常工作。我的函数看起来没问题,但我无法复制我在 Python 中所做的工作。

http://prntscr.com/nsm5yy

我不知道如何解决这个问题;我在规定的时间间隔内确实是新人。我确实尝试过:

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恢复后:

http://prntscr.com/nsmdmd

我的法力每 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/

相关文章:

javascript - 使用 .scrollWidth 横向滚动 img div

javascript - 为什么包含 prototype.js 会破坏 jquery bbq 的功能?

javascript - 如何在函数内返回函数并返回显示

javascript - 你怎么知道无限长的 promise 链何时完全完成?

html - 图片展开后大于父 div

html - 如何将 float 的图像推送到浏览器窗口的底部?

javascript改变表格标题的宽度

javascript - 单击移动设备上的按钮调用电话号码

html - 有没有办法让 HTML 选项卡容器将其高度固定为其最高选项卡的高度?

javascript - 通过浏览器后退按钮访问表单未触发 "Confirm form resubmit"