Treibende Felsen
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 16 von 36.
Die Felsen müssen sich bewegen. rock.gd lässt jeden Felsen mit seiner velocity treiben, dreht ihn langsam und lässt ihn wie das Schiff am Rand wieder erscheinen.
Ein Felsen ist groß, deshalb erscheint er bei -30 und 670 wieder, statt bei 0 und 640. So verlässt er den Bildschirm vollständig, bevor er zurückkommt. Der Sprung beträgt 700, die Breite dieses breiteren Streifens:
if position.x > 670:
position.x -= 700Der linke Rand sowie der obere und untere Rand funktionieren genauso, mit -30, 390 und einem Sprung von 420.
Aufgabe
SchwerLass die Felsen treiben, sich drehen und am Bildschirmrand wieder auftauchen.
- Füge in
rock.gd_physics_processhinzu: Bewege den Felsen umvelocity * deltaund addiere0.5 * deltazurotation. - Wenn er auf der x-Achse über
-30oder670hinausgeht, bewege ihn um700in die andere Richtung. - Wenn er auf der y-Achse über
-30oder390hinausgeht, bewege ihn um420in die andere Richtung.
Drücke „Spielen“: Die Felsen rollen über den Bildschirm und kommen zurück. Drücke dann „Prüfen“.
Probier es selbst
extends Area2D
var velocity = Vector2.ZERO
# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
var dust = CPUParticles2D.new()
dust.position = position
dust.one_shot = true
dust.explosiveness = 1.0
dust.amount = 20
dust.lifetime = 0.7
dust.spread = 180.0
dust.gravity = Vector2.ZERO
dust.initial_velocity_min = 30.0
dust.initial_velocity_max = 120.0 * scale.x
dust.scale_amount_min = 2.0
dust.scale_amount_max = 5.0
dust.color = Color(0.75, 0.82, 0.95)
dust.finished.connect(dust.queue_free)
get_parent().add_child(dust)
dust.emitting = true
Alle Lektionen in Projekte
Übe selbstständig: Godot-Playground