2017-06-26 3 views
-1

Ich kann nicht herausfinden, warum die farmerTime nicht aktualisiert wird, wenn Sie aufsteigen. Es gibt eine Schaltfläche, die farmingLevel nur eine Ebene hinzufügt.Javascript setInterval Zeit funktioniert nicht

window.setInterval(function() { 
      farmerTime = 2500; 
      farmerLevel = 3; 

      x = farmerTime; 
      y = farmerLevel; 
      z = x/y; 
      farmerTime = z; 

      if (farmers >= 1) { 
        a = farmers; 
        b = potatoes; 
        c = a * 1; 
        d = b + c; 
        potatoes = d; 
      } 
    }, farmerTime);` 
+1

Definieren Sie framerTime vor 'setInterval'. Wenn Sie die Intervallzeit dynamisch ändern möchten, müssen Sie zuerst 'clearInterval' löschen und dann erneut initiieren. – Shubham

+3

Sobald ein Intervall festgelegt wurde, wird es mit dieser Rate ankreuzen, bis Sie es löschen. Wenn Sie das Intervall ändern möchten, müssen Sie 'clearInterval' den aktuellen (hoffentlich haben Sie einen Verweis darauf gespeichert!) Und' setInterval' mit der neuen Zeit löschen. –

Antwort

0

Sie müssen farmerTime definieren, bevor Sie es verwenden. In Ihrem Fall vor der setInterval Funktion. Wenn Sie die farmerLevel ändern möchten, müssen Sie sie an anderer Stelle ändern, nicht in der setinterval-Funktion.

ändern Ebene Beispiel:

<button type="button" onclick="setFarmerLevel(farmerLevel + 1);">Change level </button> 

und der Code für das Intervall Sache:

var farmerTime = 2500; 
var farmerLevel = 1; 

var setFarmerLevel = function (level) { 
    farmerLevel = !level ? 1 : level; 
    farmerTime = farmerTime/farmerLevel; 
    clearInterval(farmerInterval); 
    farmerInterval = window.setInterval(run, farmerTime); 
}; 

var run = function() { 
    if (farmers >= 1) { 
     a = farmers; 
     b = potatoes; 
     c = a * 1; 
     d = b + c; 
     potatoes = d; 
    } 
}; 

var farmerInterval = window.setInterval(run, farmerTime); 

UPDATE

I setInterval die Funktion Zeit vergessen haben, können im laufenden Betrieb nicht geändert werden , so wird der Code jetzt aktualisiert.

Verwandte Themen