Menu
CoddyTech

CharacterBody2D

Thuộc phần Đầu vào và di chuyển trong hành trình Godot của Coddy. Bài học 7 trên 28.

Node2D đi xuyên qua tường. CharacterBody2D va vào các vật thể. Trong thẻ Scene, Hero hiện là một CharacterBody2D. Nút con CollisionShape2D của nó là một hình tròn, xác định kích thước vật lý của nhân vật chính. Tường và cột cũng có hình dạng va chạm.

Một đối tượng có velocity, một Vector2 tính bằng pixel mỗi giây. Thiết lập giá trị này không làm đối tượng di chuyển. move_and_slide() di chuyển đối tượng theo vận tốc của nó trong một khung hình rồi dừng lại khi gặp vật thể rắn:

func _physics_process(delta):
	velocity = Vector2(150, 0)
	move_and_slide()

Di chuyển đối tượng trong _physics_process, hàm này chạy đồng bộ với vật lý. move_and_slide() đã tính thời gian của khung hình, vì vậy đừng bao giờ nhân velocity với delta.

challenge icon

Thử thách

Dễ

Khiến nhân vật di chuyển theo vận tốc của nó.

  1. Trong _physics_process(), bên dưới dòng velocity, thêm move_and_slide().
  2. Thụt lề một tab, giống như dòng bên trên.

Nhấn Chơi: nhân vật lướt sang phải với tốc độ 150 pixel mỗi giây rồi dừng lại ở cây cột. Sau đó, nhấn Kiểm tra.

Tự làm thử

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

Tất cả bài học trong Đầu vào và di chuyển

Tự luyện tập: Playground Godot