Menu
CoddyTech

Khựng lại khi trúng đòn

Thuộc phần Cảm giác chơi game trong hành trình Godot của Coddy. Bài học 17 trên 23.

Hiệu ứng đứng hình khi trúng đòn khiến trò chơi khựng lại trong tích tắc khi đòn đánh trúng mục tiêu. Nhờ vậy, đòn đánh có cảm giác mạnh hơn.

Engine.time_scale là tốc độ của đồng hồ trong trò chơi. Khi giá trị là 1, trò chơi chạy bình thường. Khi giá trị là 0.05, chuyển động, tween và bộ hẹn giờ chạy chậm hơn hai mươi lần.

Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0

Bộ hẹn giờ thông thường chạy theo đồng hồ đã chậm lại, nên 0.1 giây sẽ kéo dài thành hai giây thực. Giá trị true cuối cùng trong create_timer khiến bộ hẹn giờ bỏ qua time_scale và tính thời gian thực. Hai giá trị đứng trước nó là các giá trị mặc định thông thường.

Luôn đặt lại time_scale về 1. Thuộc tính này ảnh hưởng đến toàn bộ trò chơi và giữ nguyên cho đến khi code của bạn thay đổi nó.

challenge icon

Thử thách

Trung bình

Tạm dừng trò chơi một lúc khi bị đánh trúng.

  1. Sau hiệu ứng lóe sáng trong hit(), đặt Engine.time_scale thành 0.05.
  2. Chờ 0.1 giây thực bằng bộ hẹn giờ bỏ qua tỷ lệ thời gian, như minh họa ở trên.
  3. Đặt lại Engine.time_scale thành 1.0.

Nhấn Chơi rồi nhấn E: máy bay không người lái sẽ dừng lại một lúc. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Node2D

func hit():
	modulate = Color(4, 4, 4)
	var tween = create_tween()
	tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)

Tất cả bài học trong Cảm giác chơi game

Tự luyện tập: Playground Godot