Ép và kéo giã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 18 trên 23.
Phim hoạt hình làm nhân vật co rúm lại khi bị đánh, rồi bật trở về như lò xo. Cách này khiến cú đánh trông có lực hơn.
Hiệu ứng co rúm là một tween gồm hai bước tác động lên scale. Bước đầu làm robot bè rộng và dẹt hơn. Bước thứ hai làm robot bật trở về Vector2(1, 1) với Tween.TRANS_ELASTIC, khiến robot vượt quá kích thước bình thường rồi rung lắc trước khi ổn định.
var wobble = create_tween()
wobble.tween_property(self, "scale", Vector2(1.4, 0.6), 0.08)
wobble.tween_property(self, "scale", Vector2(1, 1), 0.5).set_trans(Tween.TRANS_ELASTIC).set_ease(Tween.EASE_OUT)Đây là tween thứ hai, bên cạnh tween nháy sáng. Hai tween có thể chạy song song khi chúng thay đổi các thuộc tính khác nhau.
Thử thách
DễLàm robot bị nén lại khi bị đánh trúng.
- Sau hiệu ứng lóe sáng trong
hit(), tạo một tween thứ hai có tênwobble. - Tạo tween cho
scalethànhVector2(1.4, 0.6)trong0.08giây. - Sau đó, tạo tween đưa nó trở lại
Vector2(1, 1)trong0.5giây vớiTween.TRANS_ELASTICvàTween.EASE_OUT.
Nhấn Chơi rồi nhấn E: robot sẽ dẹt xuống rồi bật trở lại. 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