2017-02-17 1 views
0

Iam wirklich neu in der Codierung und so habe ich versucht, ein kleines Idle-Spiel zu programmieren.Upgrade Worker/Idle Game

mein Code Also für einen Arbeiter zu kaufen ist wie:

function getGold(number){ 
    gold = gold + number; 
    document.getElementById('gold').innerHTML = gold; 
}; 

function buyMiner(){ 
    var costMiner = Math.floor(10 * Math.pow(1.1,miner)); 
    if(food >= costMiner){ 
     miner = miner + 1; 
     food = food - costMiner; 
     document.getElementById("miner").innerHTML = miner; 
     document.getElementById("food").innerHTML = food; 

setInterval(function() { 
    getGold(miner); 
}, 1000); 

so Id gerne wissen, wie die Arbeiter zu aktualisieren, einen Bergmann in meinem Code zu erzeugen, zum Beispiel, 3 Gold statt 1.

wurde um eine Funktion zu denken, die so schnell aktiviert wird, wie Sie das Upgrade kaufen, aber ich weiß nicht, wie dies zu tun ..

Hoffnung jemand kann mir helfen .. danke :)

Antwort

0

Wenn Sie Ihre getGold() Funktion betrachten, übergeben Sie die Anzahl der Minenarbeiter und fügen diese Zahl zu Gold hinzu. Dies bedeutet, dass jeder Bergmann 1 Gold sammelt. Vielleicht könnte dies verdeutlichen, wie Ihr Problem besser lösen:

setInterval(function() { 
    getGold(miner * 1); 
}, 1000); 

Grundsätzlich Sie die Anzahl der Bergleute durch die Menge pro Bergmann multiplizieren wollen die Menge erzeugt zu bekommen. Oder legen Sie sie in Ihre getGold() Funktion:

function getGold(miners, goldPerMiner){ 
    gold += miners * goldPerMiner 
    document.getElementById('gold').innerHTML = gold; 
}; 

Einige Syntax-Tipps, während ich hier bin:

  • Sie müssen nicht a = a + b verwenden, eine kurze und allgemein klarere Verfahren ist a += b . Ich habe das in meiner Funktion benutzt. Ebenso können Sie -=, *=, /= für Subtraktion, Multiplikation und Division verwenden jeweils
  • Es ist jetzt in Ordnung, aber es ist im Allgemeinen keine gute Praxis alle in globalem Gültigkeitsbereich Ihrer Variablen zu setzen, kann es zu Namenskonflikten führen, die sein kann, schwer zu debuggen
+0

danke, wird es versuchen – Diliskar

+0

@Diliskar hat es gut gehen? – MayorMonty