挤压与拉伸
本课属于 Coddy Godot 学习旅程的“游戏体验”单元。第 18 课,共 23 课。
卡通角色被击中时会被压扁,然后弹回来。这样会让击打看起来更有分量。
压扁效果是一个针对 scale 的两步补间动画。第一步让机器人变宽、变扁。第二步使用 Tween.TRANS_ELASTIC 弹回到 Vector2(1, 1),越过正常大小后摇晃一会儿再稳定下来。
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)这是第二个补间动画,与闪光补间动画并列。只要修改的是不同属性,两个补间动画就可以同时运行。
挑战
简单机器人被击中时,让它压扁。
- 在
hit()中的闪光效果之后,创建第二个名为wobble的补间。 - 在
0.08秒内将scale补间到Vector2(1.4, 0.6)。 - 然后在
0.5秒内将它补间回Vector2(1, 1),并使用Tween.TRANS_ELASTIC和Tween.EASE_OUT。
按下运行,再按 E:机器人会压扁后弹回来。然后按检查。
亲手试试
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
游戏体验中的所有课
自己练习: Godot 在线编辑器