我将setInterval放入代码中,但这显然将所有激光延迟了1秒。 我希望它按以下顺序工作: - 启动时激光1和激光2被激发。 - 1秒钟休息并开火另一套激光器等
此外,如果有人可以教我如何在论坛上移动所有代码块四个空格,这将是惊人的,因为我在谷歌找到的方式没有解决这个荒谬的问题。
代码快捷方式
let laser1;
let lasers1 = [];
let laser2;
let lasers2 = [];
function createLaser() {
laser1 = new Laser(bossOne.x, bossOne.y + bossOne.sizeY, 10, 50, 5);
lasers1.push(laser1);
laser2 = new Laser(bossOne.x + bossOne.sizeX - 10, bossOne.y +
bossOne.sizeY, 10, 50, 5);
lasers2.push(laser2);
}
function draw() {
requestAnimationFrame(draw);
setInterval(createLaser, 1000);
for (i = 0; i < lasers1.length; i++) {
lasers1[i].show();
lasers1[i].move();
}
for (i = 0; i < lasers2.length; i++) {
lasers2[i].show();
lasers2[i].move();
}
}
requestAnimationFrame(draw);
如果需要,可以使用远程主机获取完整代码:https://stacho163.000webhostapp.com/ 激光是红色的
我想我应该使用布尔值,但无法设置它。 有一个类似的主题与密钥激活,但我失去了与基于布尔提出解决方案的人的联系(因为它不能很好地工作)所以我在不涉及密钥的情况下首先采取最简单的部分。
任何提示都很赞赏:)
尝试将setInterval
更改为setTimeout
,因为它已经递归循环 - 只需添加一个延迟。同时将requestAnimationFrame
调用移至draw
的底部,而不是顶部:
function draw()
setTimeout(createLasers, 1000);
//Loops
requestAnimationFrame(draw);
}