Menu
CoddyTech

英雄闪光

本课属于 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()。你可以通过节点调用另一个节点上的函数。

challenge icon

挑战

中等

守卫碰到英雄时,让英雄闪红光。

  1. 在 hero.gd 中,编写 flash():将 modulate 设置为 Color(1, 0.3, 0.3),然后在 0.5 秒内将它渐变回 Color(1, 1, 1)。
  2. 在 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 在线编辑器