打开 PlayerDeath 场景,添加一个 particle2D 子节点。并添加一个名为 Visuals 的 Node2D 结点来管理整体的视觉效果(图像翻转之类)。
选择 Particles2D 结点,在检查器中添加一个新的材质。
效果如下:
点击 Peocess Material>Material>Particles 并展开它,向下滚动找到 Animation 并将速度改为 1
修改 Time 中的 Lifetime Random 可以修改粒子的生命周期从而让动画看起来速度更慢或者更快,这里如果改为 1 就会变慢。
更改这些数值直到作为一个满意的例子效果,修改 Drawing 中的 LocalCoords 为 False,添加如下动画就可以了。
然后在 Player.gd 中修改代码,将速度的初始化调整到生成尸体之前。
isDying = true
var playerDeathInstance = playerDeathScene.instance()
playerDeathInstance.velocity = velocity
get_parent().add_child_below_node(self, playerDeathInstance)
playerDeathInstance.global_position = global_position
emit_signal("died")
并在 PlayerDeath 中的 _ready() 函数中利用 Visuals 结点来调整玩家死亡时尸体的朝向。
func _ready():
if (velocity.x > 0):
$Visuals.scale = Vector2(-1, 1)