tengo la siguiente función:
const catchingEggs = () => { let eggIndex; document.querySelector('html').style.backgroundColor = 'transparent'; leftArrow.style.display = 'none'; rightArrow.style.display = 'none'; player.removeEventListener('click', catchingEggs); leftArrow.removeEventListener('click', choosePlayerLeft); rightArrow.removeEventListener('click', choosePlayerRight); document.querySelector('html').requestFullscreen(); myInterval = setInterval(function(){ if(score % 10 === 0) { speed -= 10; intervalScore += 5 } if(heartIndex < 0) { clearInterval(myInterval); return; } eggIndex = Math.floor(Math.random()*4); fallingEggs(allEggs[eggIndex], speed); }, intervalLength); } lo cual funciona bien, pero si quiero seguir reutilizando esta función después de que ocurrió clearInterval , al agregar otro catchEggs catchingEggs() a la función principal:
const playGame = () => { screen.orientation.lock('landscape'); document.querySelector('html').style.backgroundColor = 'rgb(31, 28, 28)'; playerImages[0].style.display = 'block'; player.addEventListener('click', catchingEggs); rightArrow.addEventListener('click', choosePlayerRight); leftArrow.addEventListener('click', choosePlayerLeft); } para ejecutar después de un condicional, no hace nada. Idealmente, me gustaría poder cambiar la duración del intervalLength mientras estoy dentro del intervalo, pero eso no parece ser posible, por lo que al menos quiero poder evitarlo iniciando todo de nuevo, por ejemplo, cuando la score >= 20 , así que agregué una nueva variable cuando era verdadero, como una condición de clearInterval (hasta ahora todo bien), y luego dentro playGame() : si la nueva variable es verdadera, catchingEggs() , pero no pasó nada.
gracias de antemano.