Menu
CoddyTech

Quay mặt theo hướng di chuyể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 20 trên 28.

Nhân vật chính được vẽ hướng sang phải, và vẫn hướng sang phải khi chạy sang trái.

Toàn bộ phần hiển thị của nhân vật chính nằm trong nút con Look. Giá trị scale.x là -1 sẽ lật nút và các nút con của nó từ trái sang phải. Vì vậy, hãy lật Look:

if direction > 0:
	$Look.scale.x = 1
if direction < 0:
	$Look.scale.x = -1

Đừng lật chính CharacterBody2D, để hình dạng va chạm của nó giữ nguyên. Khi không nhấn phím nào, direction bằng 0 và không có câu lệnh if nào chạy. Nhân vật chính tiếp tục hướng về phía nó đi lần cuối.

challenge icon

Thử thách

Dễ

Cho nhân vật quay mặt theo hướng chạy.

  1. Trước move_and_slide(), đặt $Look.scale.x thành 1 khi direction > 0.
  2. Đặt thành -1 khi direction < 0.

Nhấn Chơi rồi chạy sang trái: nhân vật quay sang trái và vẫn hướng sang trái khi bạn dừng lại. Sau đó nhấn Kiểm tra.

Tự làm thử

extends CharacterBody2D

var speed = 220
var acceleration = 900
var friction = 2400
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
	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)
	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