Jugable
Apuntarme

Que se sienta al golpear

  • Nivel: reto
  • Cámara
  • Audio
  • 2 min de lectura

Tienes un enemigo, le pegas, le baja la vida, se muere. Funciona. Y no se siente nada.

La diferencia entre eso y un golpe que se siente son siete u ocho efectos de medio segundo cada uno, ninguno de los cuales cambia una sola regla del juego. Este ejercicio es agregarlos de uno en uno, con una tecla para apagar cada uno, y decidir tú cuáles valen la pena.

Qué tienes que construir

Un muñeco de práctica al centro de la pantalla, un botón para golpearlo, y ocho teclas numéricas que enciendan y apaguen estas capas:

  1. Hitstop — el juego entero se congela 60–90 ms al conectar.
  2. Screenshake — la cámara tiembla, corto y fuerte.
  3. Knockback — el enemigo sale empujado y frena.
  4. Flash — el sprite golpeado se pone blanco un instante.
  5. Escala — el atacante se estira y regresa.
  6. Partículas — chispas en el punto de contacto.
  7. Sonido con variación — el mismo golpe con el tono movido al azar.
  8. Números de daño — el número sale, sube y se desvanece.

Criterios de aceptación

  1. Cada capa se enciende y apaga independientemente, con el juego corriendo.
  2. Con las ocho apagadas, el golpe sigue funcionando: la vida baja igual.
  3. El hitstop congela al enemigo y al atacante, pero no al efecto de partículas ni a la interfaz.
  4. Golpear diez veces seguidas rápido no acumula screenshake hasta marear ni deja la cámara descentrada.
  5. El sonido con variación no satura: diez golpes seguidos no producen un estruendo, sino diez golpes.
  6. Con todo encendido, el juego sigue a 60 fps.
  7. Escribes en dos o tres renglones cuáles tres capas te parecen las que más aportan. Esa es la entrega real.

Pistas

El hitstop es la que más se siente y la más fácil de hacer mal. No uses setTimeout: pausa el paso del tiempo de la física y de los tweens, y reanúdalos. Si hiciste el cronómetro, ya separaste el reloj del mundo del reloj del juego, y aquí es donde eso paga.

El screenshake de Phaser es this.cameras.main.shake(duracion, intensidad). Para el criterio 4, valores cortos y chicos: 100 ms y 0.005 se sienten; 400 ms y 0.02 marean. Y si ya hay uno corriendo, no encadenes otro — reemplázalo.

La variación de tono es una línea y cambia todo:

this.sound.play('golpe', { detune: Phaser.Math.Between(-200, 200) })

detune va en cents; 100 es un semitono. Sin esto, el oído reconoce el mismo archivo repetido y lo lee como error.

El criterio 6 es real: ocho capas a la vez, con partículas, en una laptop de hace cinco años. Si se cae, casi siempre son las partículas — reduce el número antes de tocar cualquier otra cosa.

Cuando ya te salió

Prueba esto con alguien más: siéntalo a jugar sin decirle qué hacen las teclas, enciende las capas de una en una, y pregúntale cuándo mejoró.

Casi siempre nombran el hitstop y el sonido, casi nunca las partículas, y suelen notar el screenshake solo cuando está de más. Eso te dice dónde poner tu tiempo el resto de tu carrera, y no hay forma de aprenderlo leyendo.

Sigue con estos

Ver el catálogo completo

Empiezo

El cronómetro que no miente

Un contador en pantalla que marque exactamente los mismos segundos en un monitor de 60 Hz y en uno de 144 Hz. Suena trivial hasta que lo mides.

  • Game loop
Leer el ejercicio Sin repo todavía
Empiezo

Un sprite que camina y se detiene

Un personaje que corre cuando lo mueves y se queda quieto cuando lo sueltas, sin que la animación se reinicie sola ni se quede pegada en medio del paso.

  • Sprites
  • Input
Leer el ejercicio Sin repo todavía
Empiezo

Monedas que no se cuentan dos veces

Veinte monedas, un marcador y un bug que aparece solo cuando el jugador es lento: la moneda que suma tres veces porque tardaste tres frames en salir de ella.

  • Colisiones
  • UI y estado
Leer el ejercicio Sin repo todavía

El próximo grupo

Un día
y un juego tuyo

Presencial en Tijuana

Cupo limitado por grupo

apartar lugar