Capítulo 20 — Bucle de juego, FPS y delta time
Parte 2A — Los fundamentos del juego 2D · Capítulo 20 de 62 · 6 h
Capítulo 20 — Bucle de juego, FPS y delta time
Nivel: intermedio Duración estimada: 6 h Requisitos previos: capítulo 19 — Flutter acelerado para juegos (
runApp,StatefulWidget,setState,Ticker,CustomPainter) Lo que sabrás hacer al final: escribir un bucle de juego completo en Dart y en Flutter puro, medir los FPS y hacer que un objeto se mueva a la misma velocidad real en todas las máquinas gracias al delta time.
20.0 — Objetivos del capítulo
Al final de este capítulo, serás capaz de:
- explicar qué distingue técnicamente un juego de una aplicación clásica;
- describir el esquema entradas → actualización → renderizado y redibujarlo de memoria;
- escribir un primer bucle de juego en Dart de consola;
- explicar por qué un
while (true)congela una aplicación Flutter; - definir una imagen (frame) y una tasa de imágenes por segundo (FPS);
- convertir un número de FPS en duración de frame en milisegundos, y a la inversa;
- demostrar el bug de un desplazamiento escrito
x += 5por frame; - definir el delta time y escribir
x += vitesse * dt; - razonar en píxeles por segundo en lugar de píxeles por frame;
- calcular un
dta partir de unStopwatch; - usar un
TickerySchedulerBindingpara controlar un bucle Flutter; - mostrar un contador de FPS y suavizarlo con una media móvil;
- reconocer un
dtaberrante tras un pico de lag y limitarlo conclamp; - implementar un paso de tiempo fijo con un acumulador;
- comparar paso fijo y paso variable y elegir con conocimiento de causa;
- desacoplar la actualización del renderizado e interpolar entre dos estados;
- poner el juego en pausa, a cámara lenta o acelerado con un factor de tiempo;
- nombrar con precisión lo que el motor Flame hará por ti a partir del capítulo 27;
- ensamblar un pequeño motor de bucle reutilizable para todos los capítulos siguientes.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión