Menu
CoddyTech

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 -= 700

Der linke Rand sowie der obere und untere Rand funktionieren genauso, mit -30, 390 und einem Sprung von 420.

challenge icon

Aufgabe

Schwer

Lass die Felsen treiben, sich drehen und am Bildschirmrand wieder auftauchen.

  1. Füge in rock.gd _physics_process hinzu: Bewege den Felsen um velocity * delta und addiere 0.5 * delta zu rotation.
  2. Wenn er auf der x-Achse über -30 oder 670 hinausgeht, bewege ihn um 700 in die andere Richtung.
  3. Wenn er auf der y-Achse über -30 oder 390 hinausgeht, bewege ihn um 420 in 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