我的javascript setinterval循环乘以2而不是加1

我的javascript setinterval循环乘以2而不是加1,javascript,game-loop,Javascript,Game Loop,我正在尝试构建一个游戏循环,它在两个循环中运行良好,但是当我尝试添加第三个循环时,它只是乘以2(我的“fires”var),而不是添加“1”。你能告诉我哪里有问题吗 function buyFire(){ var fireCost = Math.floor(10 * Math.pow(1.1,fires)); //works out the cost of this cursor if(cookies >= fireCost){

我正在尝试构建一个游戏循环,它在两个循环中运行良好,但是当我尝试添加第三个循环时,它只是乘以2(我的“fires”var),而不是添加“1”。你能告诉我哪里有问题吗

function buyFire(){
    var fireCost = Math.floor(10 * Math.pow(1.1,fires));     //works out the cost of this cursor
    if(cookies >= fireCost){                                   //checks that the player can afford the cursor
        fires = fires + 1;                                   //increases number of cursors
        cookies = cookies - fireCost;                          //removes the cookies spent
        document.getElementById('fires').innerHTML = fires;  //updates the number of cursors for the user
        document.getElementById('cookies').innerHTML = cookies;


    };
    var nextCost = Math.floor(10 * Math.pow(1.1,fires));       //works out the cost of the next cursor
    document.getElementById('fireCost').innerHTML = nextCost;  //updates the cursor cost for the user
};


window.setInterval(function() {
    cookieClick(caves);
}, 900);  

window.setInterval(function() {
    cookieClick(cursors);
}, 1000);

setInterval(function() {
    fireClick(fires);
}, 1200);

完整代码:

您给fires的值是1,并将其与数字相加,在本例中,fire it self

var=1;
功能fireClick(编号){
火灾=火灾+数量;
控制台日志(火灾);
};

setInterval(函数(){fireClick(fires);},1200)你给fires的值是1,然后加上一个数字,在这种情况下,你可以自己点火

var=1;
功能fireClick(编号){
火灾=火灾+数量;
控制台日志(火灾);
};

setInterval(函数(){fireClick(fires);},1200)注释中可能已经回答了这一问题,但您在完整源代码中指定了fireClick(),如下所示:

function fireClick(number){
    fires = fires + number;
    document.getElementById("fires").innerHTML = fires;
};

您可能打算将其命名为fireClick(1),而不是fireClick(fires),后者返回fires*2。

这可能已经在注释中得到了回答,但您在完整源代码中指定了fireClick(),如下所示:

function fireClick(number){
    fires = fires + number;
    document.getElementById("fires").innerHTML = fires;
};


您可能打算将其称为fireClick(1),而不是fireClick(fires),后者返回fires*2。

因为您在函数中传递fires,该函数是fires的当前值。所以fires+fires变成了2*fires。在setInterval中,fireClick(1)应该在此处,因为您正在传递函数中的Fire,该函数是fires的当前值。所以fires+fires变成了2*fires。在setInterval中,fireClick(1)应该在那里,但如果我称之为fireClick(1),那么一旦我打开游戏,火就会计数,我不希望这样happen@DmitryGubanov,这是不是只对火有用?你忘了叫它window.setInterval(fx)了吗?这不应该设置为1200毫秒的延迟吗?是的,它不仅仅适用于fire,因为fire我刚刚更改了现有的和正在工作的代码,我不知道你的完整源代码中出现了什么错误,其他两个称为Window.setInterval(),fires说只是setInterval(),可能是吗?不,这只是一个输入错误,抱歉,我会在PasteBin中更改它,但如果我称之为fireClick(1),那么一旦我打开游戏,火就会计数,我不希望这样happen@DmitryGubanov,这是不是只对火有用?你忘了叫它window.setInterval(fx)了吗?这不应该设置为1200毫秒的延迟吗?是的,它不仅仅适用于fire,因为fire我刚刚更改了现有的和正在工作的代码,我不知道你的完整源代码中出现了什么错误,其他两个称为Window.setInterval(),fires说只是setInterval(),可能是吗?不,这只是一个输入错误,抱歉,我将在PasteBin中更改它,但在打开选项卡后立即开始倒计时功能cookieClick(number){cookies=cookies+number;document.getElementById(“cookies”).innerHTML=cookies;}@德米特里·古巴诺夫:我明天会看更多的解释。谢谢,那太棒了,因为我坐了一整天,发现nothing@DmitryGubanov我建议您创建一个
buyItem()
函数。您可以为要购买的商品提供参数。现在您已经有了几乎相同的函数
buyCursor()
buyCave()
看起来很像,但是一旦我打开了标签,就开始倒计时,这很好,函数cookieClick(number){cookies=cookies+number;document.getElementById(“cookies”).innerHTML=cookies;}@德米特里·古巴诺夫:我明天会看更多的解释。谢谢,那太棒了,因为我坐了一整天,发现nothing@DmitryGubanov我建议您创建一个
buyItem()
函数。您可以为要购买的商品提供参数。现在您有了几乎相同的函数
buyCursor()
buyCave()
看起来很像