Ich kann nicht scheinen, um zu subtrahieren einer Variablen von einem anderen
Arbeite ich an ein einfaches Spiel, und ich habe soweit mit der Programmierung, so dass, wenn Sie klicken Sie auf eine Schaltfläche "angreifen" es soll eine zufällige Zahl erzeugt, basierend auf einer Basis und Stärke, dann subtrahieren, dass aus der feindlichen Gesundheit, sondern die Subtraktion Teil scheint nicht zu funktionieren. Es gibt das Videosignal immer mit NaN
.
<head>
<script>
var playerHealth=100;
var enemyHealth=100;
var strength=10;
function begin(){
document.getElementById('playerhealth').innerHTML = playerHealth;
document.getElementById('enemyhealth').innerHTML = enemyHealth;
}
function hitEnemy(){
var attack=Math.floor(Math.random()*20 + strength);
var enemyHealth = enemyHealth - attack;
document.getElementById('damage').innerHTML = attack;
document.getElementById('enemyhealth').innerHTML = enemyHealth;
}
</script>
</head>
<body onload="begin()">
<input type="button" name="doit" id="doit" value="Attack!" onclick="hitEnemy();">
<br /><span>playerhealth</span>
<div style="font-size:3em;" id="playerhealth"></div>
<span>enemyhealth</span>
<div style="font-size:3em;" id="enemyhealth"></div>
<br />
<span>You Did:</span><span style="font-size:3em;" id="damage"></span><span>damage</span>
</body>
Kann es etwas damit zu tun haben, die nicht speziell um sicherzustellen, dass Sie sind Ganzzahlen, aber ich bin mir nicht sicher, wie das zu tun.
InformationsquelleAutor user1026779 | 2011-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
weil Sie neu definieren, enemyHealth var inside hitEnemy Funktion. Entfernen Sie die var, um es zu beheben.
InformationsquelleAutor heisthedon
Hier ist das unmittelbarste problem. Sie müssen entfernen
var
von derenemyHealth
decalaration innerhalb vonhitEnemy
. Dies schafft eine neue variable namensenemyHealth
intsead in der änderung des ersten.Zusätzlich sollten Sie nennen
begin
am Ende jederhitEnemy
Aufruf zur Aktualisierung des scores. Hier ist eine funktionierende version des codeStellen Sie sicher, dass Sie akzeptieren JaredPar Antwort. 🙂 Danke!
InformationsquelleAutor JaredPar
Hinzufügen Jared ' s Antwort...
ist die Kurzform für...
Zunächst
enemyHealth
ist definiert alsundefined
* im Rahmen derhitEnemy
. Jetzt zwei Variablen namensenemyHealth
vorhanden, aber der innere "Schatten" ist die äußere, so dass es unmöglich zu finden, um die äußere. Alsoattack
abgezogen wirdundefined
produzierenNaN
.* das klingt unsinnig, ich weiß,
InformationsquelleAutor davidchambers