for循环不起作用

时间:2017-05-30 01:50:47

标签: javascript html

基本增量游戏javascript尝试blah blah http://igt.bitballoon.com/

代码顶部的timer var

var Timer = window.setInterval(function(){Tick()}, 1000);

我的勾选功能

function Tick() {
    var persec = game.money;
    for (var i = 0; i < buildings.length; i++){
    persec += buildings[i].PerSec * buildings[i].Qty
}

我想在每个刻度线上工作的功能,但它不是

function Tick() {
    var persec = game.money;
    for (var i = 0; i < buildings.length; i++){
        persec += buildings[i].PerSec * buildings[i].Qty
    }
document.getElementById("money").innerHTML = persec;
}

问题:当您购买建筑物时,它会更改页面上的persec值,并且只会将persec值添加到您的钱中一次。它不会像它应该重复每一个滴答。我有它的工作,因为有一些笨重的代码,但我不想为每个建筑添加一个新的线。我更喜欢像for循环这样的东西。所以任何帮助都会受到赞赏。

编辑:网站不是最新的抱歉。没有更新它,因为我希望它首先工作。

2 个答案:

答案 0 :(得分:1)

你想要的可能是: 而不是

persec += buildings[i].PerSec * buildings[i].Qty

你应该使用

game.money += buildings[i].PerSec * buildings[i].Qty

您现在只是更新本地变量persec

答案 1 :(得分:0)

原始

function Tick() {
    game.money += buildings[0].Qty * buildings[0].PerSec;
    game.money += buildings[1].Qty * buildings[1].PerSec;
    document.getElementById("money").innerHTML = game.money
}

应该是

function Tick() {
    buildings.forEach(function(building) {
        game.money += building.Qty * building.PerSec;  
    });
    document.getElementById("money").innerHTML = game.money;
}