# Faça o movimento depender do tempo, não da contagem de quadros

> Aplique o tempo decorrido ao movimento do jogo, escolha uma política de recuperação segura e teste o movimento em diferentes taxas de atualização e após paralisações.

- URL: https://oneshotgems.ai/pt-BR/topics/delta-time-in-games
- Categoria: Para desenvolvedores de jogos
- Tipo: Guia
- Atualizado: 5 de outubro de 2026

O tempo delta é o tempo decorrido entre as atualizações. Multiplicar uma velocidade por segundos decorridos permite que um objeto cubra uma distância semelhante durante um segundo, independentemente de o navegador desenhar 45 ou 144 quadros. A parte complicada é decidir o que fazer quando o tempo decorrido se torna excepcionalmente grande. Se uma guia foi suspensa ou uma tarefa cara bloqueou o thread principal, aplicar cegamente toda a lacuna pode criar um salto que é matematicamente consistente, mas desagradável de jogar.

## Mantenha as unidades visíveis no código

Escolha uma unidade de tempo e use-a de forma consistente. Se a velocidade estiver em pixels por segundo e o delta em segundos, a posição avança por velocidade × delta. Um teste manual útil é mover por dez segundos um marcador configurado para 80 pixels por segundo: ele deve percorrer cerca de 800 pixels no mundo, independentemente da quantidade de renderizações.

Não misture os milissegundos de performance.now() com uma velocidade por segundo sem dividir por 1.000. Nomeie os valores com suas unidades, como deltaSeconds ou speedPixelsPerSecond, para que um ajuste posterior não multiplique silenciosamente um movimento por mil.

## Limite o efeito de uma pausa prolongada

Em um jogo de ação simples, limite delta a um máximo escolhido de propósito e aceite que a simulação fique brevemente mais lenta sob carga intensa. Em uma simulação de física que precisa de passos repetíveis, acumule o tempo e avance em incrementos fixos; limite o número de atualizações de recuperação para que esse processo não monopolize a página. Cada abordagem tem vantagens e custos: escolha de acordo com a sensação e as regras do jogo.

Teste com uma pausa artificial entre as atualizações e compare um movimento em linha reta com uma colisão no fim do percurso. Se o objeto atravessar um obstáculo fino, talvez sejam necessários subpassos menores ou um teste de colisão por varredura. Mudar apenas a taxa de renderização não resolverá esse problema nas regras do jogo.

## Perguntas

**O tempo delta torna a física determinística?** Não. Intervalos de atualização variáveis ​​ainda podem produzir resultados de integração diferentes. Uma etapa de simulação fixa melhora a repetibilidade, embora o tempo de entrada e os detalhes de ponto flutuante ainda sejam importantes.

**Qual relógio deve fornecer o tempo decorrido?** Use o carimbo de data/hora do callback de animação ou performance.now(); a MDN descreve ambos como fontes de tempo de alta resolução. Não use datas do relógio civil para intervalos curtos entre quadros, pois ajustes no relógio do sistema não têm relação com o tempo da simulação.

## Siga sua curiosidade

- [Crie um loop de jogo de navegador confiável](https://oneshotgems.ai/pt-BR/topics/browser-game-loop): Estruture atualizações de jogos do navegador e desenhe em torno de quadros de animação sem vincular a velocidade da simulação à taxa de atualização da tela do jogador.
- [Escolha verificações de colisão para um jogo pequeno](https://oneshotgems.ai/pt-BR/topics/game-collision-detection): Escolha uma representação de colisão adequada ao seu jogo, reduza verificações de pares desnecessárias e diagnostique objetos que passam por obstáculos.
- [Use um intervalo de tempo fixo para física do jogo](https://oneshotgems.ai/pt-BR/topics/fixed-timestep-game-physics): Separe as atualizações físicas da renderização com uma etapa fixa de simulação, trabalho de atualização limitado e testes para travamentos e colisões.

## Leitura complementar

- [MDN: temporização de requestAnimationFrame()](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame)
- [MDN: Performance.now()](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)

---
Página canônica: https://oneshotgems.ai/pt-BR/topics/delta-time-in-games
