Anh hùng: chạy mượt mà
Thuộc phần Đầu vào và di chuyển trong hành trình Godot của Coddy. Bài học 25 trên 28.
Nhân vật chính tăng tốc và dừng lại chỉ trong một khung hình. Hãy làm cho nhân vật tăng tốc bằng acceleration và dừng lại bằng friction:
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)Dùng acceleration bằng 1200 và friction bằng 2400. Nhân vật chính đạt tốc độ tối đa trong khoảng một phần năm giây, nên vẫn có đủ thời gian chạy đến hố.
Thử thách
Trung bìnhGiúp nhân vật tăng tốc và dừng lại mượt mà.
- Thêm
var acceleration = 1200vàvar friction = 2400. - Lưu trục vào
var direction. Khi không nhấn phím nào, dùngmove_towardđể đưavelocity.xvề0với mức thay đổi làfriction * delta. - Khi nhấn phím, dùng
move_towardđể đưavelocity.xvềdirection * speedvới mức thay đổi làacceleration * delta.
Nhấn Chơi: nhân vật tăng tốc, trượt thêm một chút khi bạn dừng lại và vượt qua hố. Sau đó nhấn Kiểm tra.
Tự làm thử
extends CharacterBody2D
var speed = 220
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
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