Menu
CoddyTech

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 / 2

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

challenge icon

Thử thách

Trung bình

Chạm nhanh nút nhảy để nhân vật bật lên một chút.

  1. Sau câu lệnh if của cú nhảy, thêm một câu lệnh if cho Input.is_action_just_released("jump") và velocity.y < 0.
  2. 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

Tự luyện tập: Playground Godot