Pausa al recibir un golpe
Parte de la sección Sensación de juego del Journey de Godot de Coddy. Lección 17 de 23.
Una congelación por impacto detiene el juego durante una fracción de segundo cuando se produce un impacto. Esto hace que el impacto se sienta más potente.
Engine.time_scale es la velocidad del reloj del juego. Con 1, el juego funciona con normalidad. Con 0.05, el movimiento, las interpolaciones y los temporizadores funcionan veinte veces más despacio.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0Un temporizador normal funciona según el reloj ralentizado, así que 0.1 segundos durarían dos segundos reales. El último true en create_timer hace que el temporizador ignore time_scale y cuente segundos reales. Los dos valores anteriores son los valores predeterminados habituales.
Restablece siempre time_scale a 1. Afecta a todo el juego y permanece así hasta que tu código lo cambie.
Desafío
IntermedioDespués del destello en hit(), congela el juego. Establece Engine.time_scale en 0.05, espera 0.1 segundos reales con un temporizador que ignore la escala de tiempo y luego vuelve a establecerlo en 1.0. Pulsa E y observa cómo se detiene el dron.
Pruébalo tú mismo
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Sensación de juego
1Interpolaciones
Tu primera interpolaciónInterpola cualquier propiedadDesvanecerSalida suaveUna tras otraAl mismo tiempoUna moneda que salta4Destellos y retroalimentación
Destello al recibir un golpePausa al recibir un golpeCompresión y estiramientoNúmeros flotantesPractica por tu cuenta: Playground de Godot