Capítulo 20 — Loop de jogo, FPS e delta time
Parte 2A — Os fundamentos do jogo 2D · Capítulo 20 de 62 · 6 h
Capítulo 20 — Loop de jogo, FPS e delta time
Nível: intermediário Duração estimada: 6 h Pré-requisitos: capítulo 19 — Flutter acelerado para jogos (
runApp,StatefulWidget,setState,Ticker,CustomPainter) O que você saberá fazer ao final: escrever um loop de jogo completo em Dart e em Flutter puro, medir os FPS e fazer um objeto se mover na mesma velocidade real em todas as máquinas graças ao delta time.
20.0 — Objetivos do capítulo
Ao final deste capítulo, você será capaz de:
- explicar o que distingue tecnicamente um jogo de um aplicativo clássico;
- descrever o esquema entradas → atualização → renderização e redesenhá-lo de memória;
- escrever um primeiro loop de jogo em Dart console;
- explicar por que um
while (true)congela um aplicativo Flutter; - definir um quadro (frame) e uma taxa de quadros por segundo (FPS);
- converter um número de FPS em duração de frame em milissegundos, e vice-versa;
- demonstrar o bug de um deslocamento escrito
x += 5por frame; - definir o delta time e escrever
x += vitesse * dt; - raciocinar em pixels por segundo em vez de pixels por frame;
- calcular um
dta partir de umStopwatch; - usar um
TickereSchedulerBindingpara controlar um loop Flutter; - exibir um contador de FPS e suavizá-lo com uma média móvel;
- reconhecer um
dtaberrante após um pico de lag e limitá-lo comclamp; - implementar um passo de tempo fixo com um acumulador;
- comparar passo fixo e passo variável e escolher com conhecimento de causa;
- desacoplar a atualização da renderização e interpolar entre dois estados;
- pausar o jogo, colocá-lo em câmera lenta ou acelerado com um fator de tempo;
- nomear com precisão o que o motor Flame fará por você a partir do capítulo 27;
- montar um pequeno motor de loop reutilizável para todos os capítulos seguintes.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão