Запретить setInterval () увеличивать скорость после заданного количества кликов

Я строю игру кликер, где я хочу таймер для автоматического щелчка для меня. Я хочу, чтобы таймер увеличивал скорость каждый раз, когда я нажимаю кнопку, но предотвращаю увеличение скорости таймера после нажатия указанной кнопки 5 раз.

Это то, что я придумал до сих пор:

var total = 0;
var itemValue = 0;

var autoClick = function() {
    if(itemValue <= 5) {
        total = total + itemValue;
    }
};

$("#button").click(function() {
    itemValue++;
    setInterval(autoClick, 1000);
});

Есть предложения?

1 ответ

  1. Таким образом, вы хотите увеличить totalзначение x каждую секунду.
    x в зависимости от того, как namy нажимает на кнопку «увеличить скорость»…
    Я понял?

    Чтобы предотвратить совпадение интервалов, необходимо очистить предыдущий.

    var total = 0;
        var itemValue = 0;
        var myInterval;
    
        var autoClick = function() {
            total = total + itemValue;
            console.log(total);
        };
    
        $("#button").click(function() {
            if(itemValue <= 4) {
                // Increase...
                itemValue++;
                // Prevents multiple intervals.
                clearInterval(myInterval);
                myInterval = setInterval(autoClick, 1000/itemValue);
                console.log("Increasing by "+itemValue+" now...");
            }else{
                console.log("Hey! By "+itemValue+" is way enought!");
            }
        });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    
    <button id="button">Increase speed!</button>