Menu
CoddyTech

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ố.

challenge icon

Thử thách

Trung bình

Giúp nhân vật tăng tốc và dừng lại mượt mà.

  1. Thêm var acceleration = 1200 và var friction = 2400.
  2. Lưu trục vào var direction. Khi không nhấn phím nào, dùng move_toward để đưa velocity.x về 0 với mức thay đổi là friction * delta.
  3. Khi nhấn phím, dùng move_toward để đưa velocity.x về direction * speed vớ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

Tự luyện tập: Playground Godot