我正在制作一个 Javascript 迷你游戏,有一个坏人和玩家,当点击玩家时,他发射子弹,子弹射向坏人,击中他后消失,伤害了他。
我设法产生子弹,我也可以让它移动,问题是当试图产生超过 1 个子弹(射击两次)时,每个子弹都需要不同的 ID,这就是我试过的去做:
<html>
<head>
<script type="text/javascript">
var hp = 4;
var num = 1;
function fire()
{
document.getElementById("bodie").innerHTML += "<img style='position:absolute;left:0px;top:0px;' id='bullet"+num+"' src='../project1/images/bullet.png'/>";
bulletpos();
num++;
}
function fireanim()
{
document.getElementById("player").src = "../project1/images/goodguyfire.png"
setTimeout(function still(){document.getElementById("player").src = "../project1/images/goodguystill.png"},200);
}
function bulletpos()
{
var bulletX = parseInt(document.getElementById("player").style.left) - 20;
var bulletY = parseInt(document.getElementById("player").style.top) + 35;
document.getElementById("bullet").style.left = bulletX;
document.getElementById("bullet").style.top = bulletY;
setInterval(function(){bulletmove()}, 25);
}
function bulletmove()
{
var bulletX = parseInt(document.getElementById("bullet").style.left);
document.getElementById("bullet").style.left = bulletX - 10;
}
function hit()
{
document.getElementById("hpbar").src = "../project1/images/hp"+ hp +".png";
if(hp <= 0)
{
die();
}
if(hp != 0)
{
hp--;
}
}
function die()
{
var foeX = parseInt(document.getElementById("foe").style.left);
document.getElementById("foe").style.left = foeX - 33;
document.getElementById("foe").src = "../project1/images/deadguy.png";
}
</script>
</head>
<body id="bodie">
<img id="player" onClick="fire(),fireanim()" style="position:absolute;top:100px;left:600px;" src="../project1/images/goodguystill.png"/>
<img id="foe" style="position:absolute;top:100px;left:150px;" src="../project1/images/badguy.png"/>
<img id="hpbar" style="position:absolute;top:80px;left:120px;" src="../project1/images/hp5.png"/>
</body>
</html>
如您所见,我尝试生成具有相同 ID 但 ID 附近编号不同的子弹,这样我可以控制每颗子弹,并在它们击中坏人后将其删除。但它仍然不让我这样做,不知道为什么。
如果有更好的方法可以很高兴地接受它,请随时更正我的代码或完全更改它。
谢谢。