Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Spraw, aby bohater poruszał się z zadaną prędkością.

  1. W _physics_process(), pod linią velocity, dodaj move_and_slide().
  2. 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