Bildschirmschoner: Neue Farben
Teil des Abschnitts Nodes und Szenen der Godot-Journey von Coddy. Lektion 28 von 28.
Der letzte Schritt gibt dem Logo bei jedem Abprallen die nächste Farbe. An allen vier Kanten passiert dasselbe, also packe es in eine Funktion, next_color(), und rufe sie bei jedem Abprallen auf.
Die Funktion erhöht color_index um 1 und zeigt dann colors[color_index] an. Bei drei Farben ist der Index zuerst 1, dann 2 und anschließend 3, wofür es keine Farbe gibt. Wenn er also colors.size(), der Anzahl der Elemente, entspricht, setze ihn wieder auf 0:
if color_index == colors.size():
color_index = 0== prüft, ob zwei Werte gleich sind. Ein einzelnes = weist einen Wert zu.
Aufgabe
EinfachGib dem Logo bei jedem Abprallen die nächste Farbe.
- Schreibe
func next_color():. Dabei wirdcolor_indexum 1 erhöht, bei Gleichheit mitcolors.size()wieder auf0gesetzt und dannmodulate = colors[color_index]zugewiesen. - Rufe
next_color()in beidenif-Anweisungen unter dem Richtungswechsel auf.
Drücke auf „Spielen“: Bei jedem Abprallen wird die nächste Farbe aus deiner Liste angezeigt. Drücke dann auf „Prüfen“.
Probier es selbst
extends Node2D
var velocity = Vector2(200, 90)
var colors = [Color(0.49, 0.95, 0.75), Color(1, 0.78, 0.34), Color(1, 0.42, 0.42)]
var color_index = 0
func _ready():
modulate = colors[0]
func _process(delta):
position += velocity * delta
if position.x > 570 or position.x < 70:
velocity.x = -velocity.x
if position.y > 330 or position.y < 30:
velocity.y = -velocity.y
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Nodes und Szenen
2Jeder Frame
Prozess läuft in jedem FrameDeltaPixel pro SekundeDiagonal bewegenMit Rotation drehenMit Skalierung wachsen5Projekt: Bildschirmschoner
Bildschirmschoner: DriftBildschirmschoner: SeitenwändeÜbe selbstständig: Godot-Playground