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.
Thử thách
DễKhiến nhân vật di chuyển theo vận tốc của nó.
- Trong
_physics_process(), bên dưới dòngvelocity, thêmmove_and_slide(). - 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
5Dự án: nhân vật anh hùng trong game đi cảnh
Anh hùng: chạyAnh hùng: nhảyTự luyện tập: Playground Godot