CharacterBody2D
Część sekcji Wejście i ruch ścieżki Godot w Coddy. Lekcja 7 z 28.
Node2D przenika przez ściany. CharacterBody2D zderza się z obiektami. Na karcie Scene węzeł Hero jest teraz typu CharacterBody2D. Jego węzeł podrzędny CollisionShape2D ma kształt koła, który określa rozmiar bohatera jako bryły. Ściany i filar również mają kształty kolizji.
Ciało ma velocity, czyli Vector2 wyrażony w pikselach na sekundę. Ustawienie tej wartości niczego nie przesuwa. move_and_slide() przesuwa ciało z jego prędkością przez jedną klatkę i zatrzymuje je na każdej bryle:
func _physics_process(delta):
velocity = Vector2(150, 0)
move_and_slide()Przesuwaj ciała w _physics_process, który działa synchronicznie z fizyką. move_and_slide() uwzględnia czas trwania klatki, więc nigdy nie mnoż velocity przez delta.
Wyzwanie
ŁatwySpraw, aby bohater poruszał się z zadaną prędkością.
- W
_physics_process(), pod liniąvelocity, dodajmove_and_slide(). - Wcięcie powinno wynosić jeden tabulator, tak jak w powyższej linii.
Naciśnij „Graj”: bohater płynnie przesuwa się w prawo z prędkością 150 pikseli na sekundę i zatrzymuje się przy filarze. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends CharacterBody2D
func _physics_process(delta):
velocity = Vector2(150, 0)
Wszystkie lekcje w sekcji Wejście i ruch
Poćwicz samodzielnie: Edytor online Godot