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.0Bộ 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ó.
Thử thách
Trung bìnhTạm dừng trò chơi một lúc khi bị đánh trúng.
- Sau hiệu ứng lóe sáng trong
hit(), đặtEngine.time_scalethành0.05. - 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.
- Đặt lại
Engine.time_scalethành1.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