我正在尝试创建一个像 pacman 中那样的幽灵(这是一个图像),它会出现在随机位置。这是我的代码
function ghost(){
while (true){
e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
document.body.appendChild(e1);
}
}
<body onload="gameLoop();" onkeydown="" onkeyup="moveSelection(event)" onload="ghost();">
我希望它并排无限地运行。
最佳答案
您不能在 Javascript 中编写这样的无限循环,因为它会永远运行,阻止浏览器执行任何其他操作,从而有效地“挂起”浏览器,直到浏览器最终中止脚本。浏览器中的主要 Javascript 执行是单线程的,因此如果你像这样永远循环,那么其他任何东西都无法运行。
相反,您可以使用 setInterval()
计时器随时间更新位置。如果您能用文字准确描述您想要完成的目标,我们可能会更具体地帮助您推荐代码。
此外,您在 body 标签上只能有一个 onload
属性,因此您可以从一个属性调用两个函数,或者创建一个调用多个事物的新函数,并在onload
属性。
下面是 setInterval()
的简单用法:
// something must set the e1 variable first
document.body.appendChild(e1);
setInterval(function() {
e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
}, 5000);
请注意,根据您的代码,这将导致图像不时地在屏幕上跳到随机的上/下位置。
关于javascript - 函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056343/