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.
91 lines
2.5 KiB
Plaintext
91 lines
2.5 KiB
Plaintext
[gd_scene load_steps=8 format=3 uid="uid://17macg0q4k8l"]
|
|
|
|
[ext_resource type="Shader" path="res://shaders/transition_shader.gdshader" id="1_kyfmm"]
|
|
[ext_resource type="Texture2D" uid="uid://b5mne7k2hxq4m" path="res://shaders/masks/curtain.png" id="2_pg1r4"]
|
|
|
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_g48os"]
|
|
shader = ExtResource("1_kyfmm")
|
|
shader_parameter/cutoff = 0.0
|
|
shader_parameter/smooth_size = 0.1
|
|
shader_parameter/mask = ExtResource("2_pg1r4")
|
|
|
|
[sub_resource type="GDScript" id="GDScript_rrd13"]
|
|
script/source = "class_name FadeShader extends ColorRect
|
|
|
|
signal fade_in_done()
|
|
signal fade_out_done()
|
|
|
|
@onready var player := $\"AnimationPlayer\" as AnimationPlayer
|
|
|
|
func fade_in():
|
|
player.play(&\"fade_in\")
|
|
|
|
func fade_out():
|
|
player.play(&\"fade_out\")
|
|
|
|
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
|
|
if anim_name == \"fade_in\":
|
|
fade_in_done.emit()
|
|
elif anim_name == \"fade_out\":
|
|
fade_out_done.emit()
|
|
"
|
|
|
|
[sub_resource type="Animation" id="Animation_yg4ht"]
|
|
resource_name = "fade_in"
|
|
length = 0.5
|
|
tracks/0/type = "value"
|
|
tracks/0/imported = false
|
|
tracks/0/enabled = true
|
|
tracks/0/path = NodePath(".:material:shader_parameter/cutoff")
|
|
tracks/0/interp = 1
|
|
tracks/0/loop_wrap = true
|
|
tracks/0/keys = {
|
|
"times": PackedFloat32Array(0.2, 0.4),
|
|
"transitions": PackedFloat32Array(1, 0.450625),
|
|
"update": 0,
|
|
"values": [0.0, 1.0]
|
|
}
|
|
|
|
[sub_resource type="Animation" id="Animation_mavdc"]
|
|
resource_name = "fade_out"
|
|
length = 0.25
|
|
tracks/0/type = "value"
|
|
tracks/0/imported = false
|
|
tracks/0/enabled = true
|
|
tracks/0/path = NodePath(".:material:shader_parameter/cutoff")
|
|
tracks/0/interp = 1
|
|
tracks/0/loop_wrap = true
|
|
tracks/0/keys = {
|
|
"times": PackedFloat32Array(0, 0.2),
|
|
"transitions": PackedFloat32Array(1, 1),
|
|
"update": 0,
|
|
"values": [1.0, 0.0]
|
|
}
|
|
|
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kedvi"]
|
|
_data = {
|
|
"fade_in": SubResource("Animation_yg4ht"),
|
|
"fade_out": SubResource("Animation_mavdc")
|
|
}
|
|
|
|
[node name="TransitionShader" type="ColorRect"]
|
|
material = SubResource("ShaderMaterial_g48os")
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_right = -1680.0
|
|
offset_bottom = -945.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
size_flags_horizontal = 3
|
|
size_flags_vertical = 3
|
|
color = Color(0, 0, 0, 1)
|
|
script = SubResource("GDScript_rrd13")
|
|
|
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
|
libraries = {
|
|
"": SubResource("AnimationLibrary_kedvi")
|
|
}
|
|
|
|
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
|