niveau/transitions: shader de transition

Entre les niveaux et à la mort il y a maintenant un fondu au noir qui se
met en place pour éviter d'avoir la gerbe sur les mouvements de caméra.
la physique est en pause pendant la transition.
This commit is contained in:
Thomas Lavocat
2023-05-11 08:53:46 +02:00
parent bd85e22644
commit 5678bd8c55
13 changed files with 240 additions and 7 deletions

View File

@@ -24,6 +24,7 @@ func dash_fart() -> bool:
func reset():
animationPlayer.play("RESET")
loaded = false
loading = false
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == "reload":

View File

@@ -4,7 +4,11 @@ class_name HUD extends CanvasLayer
@onready var gauge2 := $FartGauge2 as FartGauge
@onready var gauge3 := $FartGauge3 as FartGauge
@onready var shader := $TransitionShader
signal fart_reloaded()
signal screen_is_black()
signal screen_is_ready()
var cheese_number = 0
var gauges = []
@@ -15,7 +19,6 @@ func _ready() -> void:
gauge3.connect("reload_done", cheese_loaded)
gauges = [gauge1, gauge2, gauge3]
func reset():
cheese_number = 0
for gauge in gauges:
@@ -34,3 +37,17 @@ func dash_fart():
func cheese_loaded():
fart_reloaded.emit()
func begin_scene_transition():
print("start scene transition")
shader.fade_out()
func end_scene_transition():
print("end scene transition")
shader.fade_in()
func _on_transition_shader_fade_in_done() -> void:
screen_is_ready.emit()
func _on_transition_shader_fade_out_done() -> void:
screen_is_black.emit()

View File

@@ -1,8 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://dvlb4thqhqke"]
[gd_scene load_steps=4 format=3 uid="uid://dvlb4thqhqke"]
[ext_resource type="PackedScene" uid="uid://dsgt6b1bqi6ui" path="res://HUD/fart_gauge.tscn" id="1_4e2i3"]
[ext_resource type="Script" path="res://HUD/hud.gd" id="1_e1sc7"]
[ext_resource type="PackedScene" uid="uid://17macg0q4k8l" path="res://shaders/transition_shader.tscn" id="2_gh8iu"]
[node name="HUD" type="CanvasLayer"]
script = ExtResource("1_e1sc7")
[node name="FartGauge3" parent="." instance=ExtResource("1_4e2i3")]
position = Vector2(242, 6)
@@ -18,3 +21,10 @@ scale = Vector2(0.7, 0.7)
position = Vector2(51, 6)
rotation = -1.5708
scale = Vector2(0.7, 0.7)
[node name="TransitionShader" parent="." instance=ExtResource("2_gh8iu")]
offset_right = 0.0
offset_bottom = 0.0
[connection signal="fade_in_done" from="TransitionShader" to="." method="_on_transition_shader_fade_in_done"]
[connection signal="fade_out_done" from="TransitionShader" to="." method="_on_transition_shader_fade_out_done"]