Ir al contenido
Descargar

Orden del step

Brasa ejecuta la lógica del juego en pasos fijos de 1/60 de segundo, independientes de la velocidad de la computadora. Si un cuadro tarda, ejecuta más pasos para alcanzar (como máximo 5 por cuadro). Por eso las velocidades en “píxeles por paso” y los temporizadores en “pasos” se comportan igual en cualquier máquina.

Para todas las instancias, en este orden:

  1. Temporizadores: se ejecutan los after/every vencidos.
  2. onUpdate de cada instancia, en el orden en que fueron creadas.
  3. Movimiento: la gravedad y la fricción ajustan la velocidad, hspeed/vspeed mueven la instancia (a menos que moveAndStop ya haya avanzado en este paso) y la animación avanza.
  4. Colisiones: los onCollide de quienes se están tocando.
  5. Destrucciones: las instancias con destroy() salen, y se llama a su onDestroy.
  6. Nuevas instancias: las creadas durante el paso entran en la lista. Su onSpawn ya se ejecutó en el momento del spawn, pero el primer onUpdate solo ocurre en el paso siguiente.
  7. Cámara: la cámara de la room avanza un paso detrás del objetivo, con el suavizado y la zona muerta. Como avanza en el paso fijo, el suavizado es igual en cualquier monitor, de 60 Hz o de 144 Hz.

Después de los pasos, se dibuja el cuadro: todas las instancias visibles ejecutan onRender (las capas de atrás primero) y, por encima de todo, onRenderGui. La posición de la cámara se redondea a un píxel entero al dibujar, para que el personaje y el escenario cambien de píxel juntos.

  • Una posición cambiada en el onUpdate ya vale para las colisiones del mismo paso.
  • destroy() no elimina al momento: la instancia termina el paso y sale al final. Usa isDestroyed() para no actuar dos veces.
  • goTo y restart ocurren al final del cuadro, después de que termina el paso actual.