Nhảy biến thiên
Thuộc phần Đầu vào và di chuyển trong hành trình Godot của Coddy. Bài học 16 trên 28.
Trong hầu hết game đi cảnh, nhấn nhanh nút sẽ khiến nhân vật nhảy nhẹ, còn giữ nút sẽ khiến nhân vật nhảy cao hết mức.
Để làm điều này, hãy ngắt cú nhảy khi bạn thả nút. Input.is_action_just_released("jump") có giá trị true trong khung hình duy nhất khi bạn nhả phím. Nếu nhân vật vẫn đang bay lên lúc đó, hãy giảm một nửa tốc độ đi lên:
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2velocity.y < 0 nghĩa là nhân vật vẫn đang bay lên. Nếu không có điều kiện này, việc nhả phím khi nhân vật đang rơi sẽ làm chậm cú rơi.
Giữ phím cho đến khi nhân vật lên đến đỉnh cú nhảy thì cú nhảy sẽ không bị ngắt.
Thử thách
Trung bìnhChạm nhanh nút nhảy để nhân vật bật lên một chút.
- Sau câu lệnh
ifcủa cú nhảy, thêm một câu lệnhifchoInput.is_action_just_released("jump")vàvelocity.y < 0. - Bên trong câu lệnh đó, chia đôi
velocity.y.
Nhấn Chơi: chạm nhanh phím Space sẽ khiến nhân vật bật lên, còn giữ phím sẽ tạo cú nhảy đầy đủ. 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ảy3Trọng lực và nhảy
Rơi do trọng lựcNhảy lênChỉ nhảy từ mặt đấtChạy và nhảyNhảy biến thiênNhảy hai lầnTự luyện tập: Playground Godot