Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
Javascript: solicitud simpleAnimationFrame gameloop

Voy a hacer esto muy simple. En cada cuadro, necesito representar al 'jugador' donde sea que esté. Usando setInterval, pude hacer esto. Desafortunadamente, eso hace que parpadee ocasionalmente y mis muchas horas tratando de corregir esto no han tenido éxito. He reducido el problema al interior de este código:

 function eachFrame(){ ctx.clearRect(0,0,canvas.width,canvas.height); player.motion(); player.render(); setTimeout(window.requestAnimationFrame(eachFrame), 1000 / fps); }; window.requestAnimationFrame(eachFrame);

Cuando esto se ejecuta, no aparece absolutamente nada en la pantalla.

player.motion actualiza la posición del jugador y maneja la lógica de movimiento. No es el problema, pero lo necesito.

player.render dibuja la posición actual del jugador en la pantalla. Tampoco es el problema.

La razón por la que sé que player.motion y player.render están completamente bien es porque, cuando te deshaces de ctx.clearRect(), puedes mover el reproductor y se renderiza perfectamente.

 function eachFrame(){ //ctx.clearRect(0,0,canvas.width,canvas.height); player.motion(); player.render(); setTimeout(window.requestAnimationFrame(eachFrame), 1000 / fps); }; window.requestAnimationFrame(eachFrame);

Cuando te deshaces de eso, por supuesto que ahora estás jugando a la serpiente y te quedas con un rastro detrás del jugador. ctx.clearRect hace su trabajo, borra la pantalla.

Esta línea es el problema: setTimeout(window.requestAnimationFrame(eachFrame), 1000 / fps);

¿Cómo lo soluciono?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda