Treffer-Stopp
Teil des Abschnitts Spielgefühl der Godot-Journey von Coddy. Lektion 17 von 23.
Ein Hit Freeze hält das Spiel für den Bruchteil einer Sekunde an, wenn ein Treffer landet. Dadurch fühlt sich der Treffer kraftvoll an.
Engine.time_scale ist die Geschwindigkeit der Spieluhr. Bei 1 läuft das Spiel normal. Bei 0.05 laufen Bewegungen, Tweens und Timer zwanzigmal langsamer.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0Ein normaler Timer läuft mit der verlangsamten Uhr, sodass 0.1 Sekunden zwei echte Sekunden dauern würden. Das letzte true in create_timer sorgt dafür, dass der Timer time_scale ignoriert und echte Sekunden zählt. Die beiden Werte davor sind die üblichen Standardwerte.
Setze time_scale immer wieder auf 1 zurück. Es wirkt sich auf das gesamte Spiel aus und bleibt so, bis dein Code es ändert.
Aufgabe
MittelFriere das Spiel nach dem Aufblitzen in hit() ein. Setze Engine.time_scale auf 0.05, warte mit einem Timer, der die Zeitskalierung ignoriert, 0.1 echte Sekunden und setze sie dann wieder auf 1.0. Drücke E und beobachte, wie die Drohne stehen bleibt.
Probier es selbst
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielgefühl
Übe selbstständig: Godot-Playground