英雄闪光
本课属于 Coddy Godot 学习旅程的“项目”单元。第 34 课,共 36 课。
顶部栏里的生命值减少很容易被忽略。让英雄受击时闪红光,然后逐渐恢复。可以用补间动画实现,把它放在英雄的 flash() 函数中:
func flash():
modulate = Color(1, 0.3, 0.3)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.5)颜色会立刻变红,然后补间动画会在半秒内让它恢复为白色。modulate 会为英雄及其所有子节点着色。
main.gd 会在每次受击时调用 $Hero.flash()。你可以通过节点调用另一个节点上的函数。
挑战
中等守卫碰到英雄时,让英雄闪红光。
- 在
hero.gd中,编写flash():将modulate设置为Color(1, 0.3, 0.3),然后在0.5秒内将它渐变回Color(1, 1, 1)。 - 在
main.gd中,守卫碰到英雄时调用$Hero.flash()。
按下 Play 并碰到守卫:英雄会闪红光。然后点击“检查”。
亲手试试
extends CharacterBody2D
const SPEED = 160
func _physics_process(delta):
velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * SPEED
move_and_slide()
项目中的所有课
自己练习: Godot 在线编辑器