Ściany cię zatrzymają
Część sekcji Wejście i ruch ścieżki Godot w Coddy. Lekcja 9 z 28.
Ściany i filar to węzły StaticBody2D. Statyczne ciało nigdy się nie porusza. Każde ma element CollisionShape2D określający jego bryłę oraz element ColorRect, który ją rysuje.
Tylko move_and_slide() sprawdza, czy na drodze są ściany. Zmiana wartości position przesuwa ciało bez sprawdzania, więc przenika ono przez ściany:
position.x += direction * speed * delta # przez ściany
velocity.x = direction * speed # zatrzymywane przez ściany
move_and_slide()Tekst po # to komentarz. Godot go pomija.
Ciało, które uderza w ścianę pod kątem, zachowuje część ruchu wzdłuż ściany. Ślizga się zamiast zatrzymać, co wyjaśnia nazwę move_and_slide().
Wyzwanie
ŁatwySpraw, by ściany zatrzymywały bohatera.
- Zastąp wiersz
position.xtakim, który ustawiavelocity.xnadirection * speed, bezdelta. - Wywołaj pod nim
move_and_slide().
Naciśnij „Graj” i przejdź w obie strony: filar i ściana zatrzymają bohatera. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var direction = Input.get_axis("move_left", "move_right")
position.x += direction * speed * delta
Wszystkie lekcje w sekcji Wejście i ruch
2CharacterBody2D
CharacterBody2DPoruszaj się z prędkościąŚciany cię zatrzymająPoruszaj się wszędzieRówne przekątnePoćwicz samodzielnie: Edytor online Godot