我用javascript制作了一个项目游戏(这里是链接:https://cams03.github.io/canvus/page_accueil.html)
现在我想通过提高飞行物体的速度来改善游戏。我尝试了很多东西,总是有问题。这是我的代码示例(如果需要,我可以提供完整的代码,但它更长)。变量cpt是得分
let planetTimer2, planetTimer3, planetTimer4;
function level() {
if (cpt == 5 ) {
clearInterval(planetTimer);
planetTimer2 = setInterval(spawnPlanet, 1000);
}
if (cpt == 20) {
clearInterval(planetTimer2);
planetTimer3 = setInterval(spawnPlanet, 0700);
}
if (cpt == 40) {
clearInterval(planetTimer3);
planetTimer4 = setInterval(spawnPlanet, 0500);
}
}
function countdown() {
level();
if (timeLeft < 0) {
clearTimeout(timerId);
clearTimeout(planetTimer);
clearTimeout(planetTimer2);
clearTimeout(planetTimer3);
clearTimeout(planetTimer4);
clearTimeout(bonusTimer);
let paragraph = document.getElementById("result");
if (cpt < 20) {
paragraph.innerHTML = "Ton score est de : " + cpt + ". La honte sur toi Maurice !!";
} else if (cpt < 80) {
paragraph.innerHTML = "Mouais ton score est de : " + cpt + ". Tu peux faire mieux mon vieux !";
} else {
paragraph.innerHTML = "Ton score est de : " + cpt + ". T'es un killer !!";
}
document.querySelector("h1").appendChild(paragraph);
cover.classList.add("visible");
popup.classList.add("visible");
} else {
timer.innerHTML = timeLeft;
timeLeft--;
}
};
let timerId = setInterval(countdown, 1000);
document.addEventListener("DOMContentLoaded", countdown());
rejouer.addEventListener("click", function () {
cover.classList.remove("visible");
popup.classList.remove("visible");
cpt = 0;
timeLeft = 30;
countdown();
timerId = setInterval(countdown, 1000);
spawnPlanet();
spawnBonus();
planetTimer = setInterval(spawnPlanet, 2000);
bonusTimer = setInterval(spawnBonus, 9000);
});
问题是if (cpt == 5 )
无法使用,因为如果你获得奖金,你的分数可以从3增加到7(例如)而不经过5,所以平等将不存在并且条件获胜不被执行。
有人可以帮我吗?我希望我的解释清楚,非常感谢你的帮助!!
答案 0 :(得分:0)
这应该相对简单。
检查分数是否等于或大于将其与(5,20,40)进行比较的分数,并检查定时器是否仍在运行。
在clearinterval之后,还取消设置定时器变量。
function level() {
if (cpt >= 5 && planetTimer) {
clearInterval(planetTimer);
delete planetTimer;
planetTimer2 = setInterval(spawnPlanet, 1000);
}
if (cpt >= 20 && planetTimer2) {
clearInterval(planetTimer2);
delete planetTimer2;
planetTimer3 = setInterval(spawnPlanet, 700);
}
if (cpt >= 40 && planetTimer3) {
clearInterval(planetTimer3);
delete planetTimer3;
planetTimer4 = setInterval(spawnPlanet, 500);
}
}
此外,在function countdown()
中,您有几个clearTimeout
来电。那些应该是clearInterval
。