Auf den Bildschirm begrenzen
Teil des Abschnitts Eingabe und Bewegung der Godot-Journey von Coddy. Lektion 21 von 28.
Laufe nach links, und der Held verlässt den Bildschirm. clamp(value, low, high) hält eine Zahl zwischen zwei Grenzen. Die Funktion gibt low zurück, wenn value kleiner ist, high, wenn value größer ist, und andernfalls value. clamp(700, 14, 626) ergibt 626.
Begrenze die Position nach dem Bewegen und speichere das Ergebnis:
move_and_slide()
position.x = clamp(position.x, 14, 626)position ist die Mitte des Helden, und der Held ist 28 Pixel breit. Seine Mitte bleibt also 14 Pixel von jeder Kante des 640 Pixel breiten Bildschirms entfernt, und der ganze Held bleibt im Bild.
Aufgabe
EinfachHalte den ganzen Helden auf dem Bildschirm.
- Setze nach
move_and_slide()position.xmitclamp(). - Begrenze den Wert auf den Bereich zwischen
14und626.
Drücke auf „Spielen“ und laufe zu beiden Seiten: Der Held bleibt am Rand stehen und ist vollständig auf dem Bildschirm. Drücke dann auf „Prüfen“.
Probier es selbst
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1
move_and_slide()
Alle Lektionen in Eingabe und Bewegung
1Eingabeaktionen
Drücken zum BewegenLinks und rechtsEine AchseVier RichtungenGerade erst gedrücktNicht behandelte Eingabe4Flüssige Bewegung
Langsam beschleunigenReibungIn Bewegungsrichtung schauenAuf den Bildschirm begrenzenBeide Achsen begrenzenÜbe selbstständig: Godot-Playground