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.
54 lines
1.2 KiB
GDScript
54 lines
1.2 KiB
GDScript
class_name HUD extends CanvasLayer
|
|
|
|
@onready var gauge1 := $FartGauge1 as FartGauge
|
|
@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 = []
|
|
|
|
func _ready() -> void:
|
|
gauge1.connect("reload_done", cheese_loaded)
|
|
gauge2.connect("reload_done", cheese_loaded)
|
|
gauge3.connect("reload_done", cheese_loaded)
|
|
gauges = [gauge1, gauge2, gauge3]
|
|
|
|
func reset():
|
|
cheese_number = 0
|
|
for gauge in gauges:
|
|
gauge.reset()
|
|
|
|
func load_cheese():
|
|
for gauge in gauges:
|
|
if gauge.load_cheese():
|
|
return
|
|
|
|
func dash_fart():
|
|
for x in gauges.size():
|
|
var gauge = gauges[-x-1]
|
|
if gauge.dash_fart():
|
|
return
|
|
|
|
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()
|