我的javascript setinterval循环乘以2而不是加1
我正在尝试构建一个游戏循环,它在两个循环中运行良好,但是当我尝试添加第三个循环时,它只是乘以2(我的“fires”var),而不是添加“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){
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()
看起来很像