Menu
CoddyTech

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.0

Ein 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.

challenge icon

Aufgabe

Mittel

Halte das Spiel bei einem Treffer kurz an.

  1. Setze nach dem Aufblitzen in hit() Engine.time_scale auf 0.05.
  2. Warte 0.1 reale Sekunden mit einem Timer, der die Zeitskalierung ignoriert, wie oben gezeigt.
  3. Setze Engine.time_scale wieder auf 1.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