0

そこで、関数が機能していないという問題を追跡したchargeBmAttk()ので、デバッグを容易にするためにアラートを追加しました。ただし、アラートはポップアップしません。chargeBmAttk() 関数の構文または HTML コードのボタンに 何か問題がありますか?

var playerHp = 45; // Player's health
var enemyHp = 35; // Enemy's health



// Player attack options

function missleAttk()
{ 
var playerDmgs = [5, 10, 15]; // Array of possible damages
var playerRndDmg = playerDmgs[Math.floor(Math.random() * playerDmgs.length]; //          Randomly select integer from array and apply as playerRndDmg
enemyHp = enemyHp - playerRndDmg;
}

function chargeBmAttk()
{
alert("hello world");
//  enemyHp = enemyHp - 5;
}

function waveBmAttk()
{
enemyHp = enemyHp - 7;
}

function iceBmAttk()
{
enemeyHp = enemeyHp - 10;
}


// Enemy attack options


function enemyAttk()
{
var enemyDmgs = [10, 7, 5, 4]; // Array of possible enemy damages
var enemyrRndDmg = enemyDmgs[Math.floor(Math.random() * enemyDmgs.length]; // Randomly select integer from array and apply as enemyRndDmg
playerHp = playerHp - enemeyRndDmg;
}

// Change txt outputs

function changePlayerHp()
{
var oldHp = document.getElementById("disPlayerHp").innerHTML;
var newHp = "Samus" + playerHp + "/ 45";
document.getElementById("disPlayerHp").innerHTML = newHp;

}

function changeEnemyHp()
{
var oldHp = document.getElementById("disEnemyHp").innerHTML;
var newHp = "Metroid" + enemyHp + "/ 35";
document.getElementById("disEnemyHp").innerHTML = newHp;
}


// Game end functions
function win()
{
if (enemyHp <= 0){
alert ("You win!");
}
}

function lose()
{
if (playerHp <= 0){
alert ("You Lose!");
}
}

// Game flow
function flow()
{
changeEnemyHp();
enemyAttk();
changePlayerHp();
win();
lose();
}


</script>
</head>
<body>
<div class="actions">
</br>
 <input type="button" onclick = "chargeBmAttk()" value = "Charge Beam">
 </button>
</div>  
</body>
4

3 に答える 3

1
this one is correct.you missed two ')' and closing input tag.

<!DOCTYPE html>
<html>
<script>
var playerHp = 45; // Player's health
var enemyHp = 35; // Enemy's health



// Player attack options

function missleAttk()
{ 
var playerDmgs = [5, 10, 15]; // Array of possible damages
var playerRndDmg = playerDmgs[Math.floor(Math.random() * playerDmgs.length)]; //          Randomly select integer from array and apply as playerRndDmg
enemyHp = enemyHp - playerRndDmg;
}

function chargeBmAttk()
{
alert("hello world");
//  enemyHp = enemyHp - 5;
}

function waveBmAttk()
{
enemyHp = enemyHp - 7;
}

function iceBmAttk()
{
enemeyHp = enemeyHp - 10;
}


// Enemy attack options


function enemyAttk()
{
var enemyDmgs = [10, 7, 5, 4]; // Array of possible enemy damages
var enemyrRndDmg = enemyDmgs[Math.floor(Math.random() * enemyDmgs.length)]; // Randomly select integer from array and apply as enemyRndDmg
playerHp = playerHp - enemeyRndDmg;
}

// Change txt outputs

function changePlayerHp()
{
var oldHp = document.getElementById("disPlayerHp").innerHTML;
var newHp = "Samus" + playerHp + "/ 45";
document.getElementById("disPlayerHp").innerHTML = newHp;

}

function changeEnemyHp()
{
var oldHp = document.getElementById("disEnemyHp").innerHTML;
var newHp = "Metroid" + enemyHp + "/ 35";
document.getElementById("disEnemyHp").innerHTML = newHp;
}


// Game end functions
function win()
{
if (enemyHp <= 0){
alert ("You win!");
}
}

function lose()
{
if (playerHp <= 0){
alert ("You Lose!");
}
}

// Game flow
function flow()
{
changeEnemyHp();
enemyAttk();
changePlayerHp();
win();
lose();
}


</script>
</head>
<body>
<div class="actions">
 <input type="button" onclick = "chargeBmAttk();" value = "Charge Beam" />
</div>  
</body>
</html>
于 2013-02-25T07:00:26.700 に答える
0

問題はあなたのenemyAttk()機能と missleAttk()機能にあります。

function enemyAttk()
{
var enemyDmgs = [10, 7, 5, 4]; // Array of possible enemy damages
var enemyrRndDmg = enemyDmgs[Math.floor(Math.random() * enemyDmgs.length)];//bracket missing here
playerHp = playerHp - enemeyRndDmg;
}

その関数には角かっこがありません。HTMLコードの入力タグを閉じる必要があります。そして</button>、コードからタグを削除します。

于 2013-02-25T07:04:45.267 に答える
0

var playerRndDmg = playerDmgs[Math.floor(Math.random() * playerDmgs.length)];

var enemyrRndDmg = enemyDmgs[Math.floor(Math.random() * enemyDmgs.length)];

この2行に中括弧がありませ)ん。関数を修正すると、呼び出しとアラートが発生しますHello World

于 2013-02-25T06:43:42.577 に答える