Treffer-Stopp
Teil des Abschnitts Spielgefühl der Godot-Journey von Coddy. Lektion 17 von 23.
Ein Treffer-Stopp hält das Spiel für einen Sekundenbruchteil an, wenn ein Treffer landet. Dadurch fühlt sich der Treffer kräftig an.
Engine.time_scale ist die Geschwindigkeit der Spieluhr. Bei 1 läuft das Spiel normal. Bei 0.05 laufen Bewegung, 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, daher würden 0.1 Sekunden zwei echte Sekunden dauern. 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 auf 1 zurück. Es wirkt sich auf das gesamte Spiel aus und bleibt so, bis dein Code es ändert.
Aufgabe
MittelHalte das Spiel bei einem Treffer kurz an.
- Setze nach dem Aufblitzen in
hit()Engine.time_scaleauf0.05. - Warte 0.1 reale Sekunden mit einem Timer, der die Zeitskalierung ignoriert, wie oben gezeigt.
- Setze
Engine.time_scalewieder auf1.0.
Drücke „Spielen“ und drücke E: Die Drohne bleibt kurz stehen. Drücke dann „Prüfen“.
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)
Alle Lektionen in Spielgefühl
Übe selbstständig: Godot-Playground