developpement d'écran de chargement et d'écran de sélection de niveau
* modification de certains assets * optimisation de chunks * ajout d'un SceneManager * ajout d'un premier dialogue avec Demeter * changement des jour en charge * mise en place d'un système de run * etc...
This commit is contained in:
@@ -2,18 +2,77 @@
|
||||
extends Node
|
||||
class_name ControlAnimationPlayer
|
||||
|
||||
signal animation_ended
|
||||
|
||||
var on_animation = false
|
||||
|
||||
@onready var target : Control = get_parent()
|
||||
|
||||
var target_default_pos : Vector2
|
||||
var target_default_modulate = Color.WHITE
|
||||
|
||||
@export_tool_button("Test Shake", "Callable") var shake_action = shake
|
||||
@export_tool_button("Test Bounce", "Callable") var bounce_action = bounce
|
||||
@export_tool_button("Test Appear", "Callable") var appear_action = appear
|
||||
@export_tool_button("Test Disappear", "Callable") var disappear_action = disappear
|
||||
@export_tool_button("Test Slide In", "Callable") var slide_in_action = slide_in
|
||||
@export_tool_button("Test Slide Off", "Callable") var slide_off_action = slide_off
|
||||
@export_tool_button("Test Fade In", "Callable") var fade_in_action = fade_in
|
||||
@export_tool_button("Test Fade Out", "Callable") var fade_out_action = fade_out
|
||||
|
||||
func _ready():
|
||||
setup_default_values()
|
||||
get_tree().get_root().size_changed.connect(setup_default_values)
|
||||
|
||||
func setup_default_values():
|
||||
target_default_pos = target.global_position
|
||||
|
||||
func start_anim():
|
||||
on_animation = true
|
||||
|
||||
func end_anim():
|
||||
animation_ended.emit()
|
||||
on_animation = false
|
||||
|
||||
func fade_in(
|
||||
duration : float = 0.3,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
|
||||
):
|
||||
start_anim()
|
||||
target.visible = true
|
||||
|
||||
await add_tween(
|
||||
"modulate",
|
||||
target_default_modulate,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
end_anim()
|
||||
|
||||
func fade_out(
|
||||
duration : float = 0.3,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
|
||||
):
|
||||
start_anim()
|
||||
target.visible = true
|
||||
|
||||
await add_tween(
|
||||
"modulate",
|
||||
Color.TRANSPARENT,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
target.visible = false
|
||||
end_anim()
|
||||
|
||||
func disappear(
|
||||
duration : float = 0.3,
|
||||
offset : int = 20,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
|
||||
):
|
||||
start_anim()
|
||||
add_tween(
|
||||
"modulate",
|
||||
Color.TRANSPARENT,
|
||||
@@ -28,29 +87,68 @@ func disappear(
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
target.position += Vector2.DOWN * offset
|
||||
target.position = target_default_pos
|
||||
end_anim()
|
||||
|
||||
func appear(
|
||||
duration : float = 0.3,
|
||||
offset : int = 20,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
|
||||
):
|
||||
start_anim()
|
||||
target.modulate = Color.TRANSPARENT
|
||||
|
||||
add_tween(
|
||||
"modulate",
|
||||
Color.WHITE,
|
||||
target_default_modulate,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
target.position += Vector2.UP * offset
|
||||
target.position = target_default_pos + Vector2.UP * offset
|
||||
|
||||
await add_tween(
|
||||
"position",
|
||||
target.position + Vector2.DOWN * offset,
|
||||
target_default_pos,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
|
||||
target.position = target_default_pos
|
||||
|
||||
end_anim()
|
||||
|
||||
func slide_in(
|
||||
duration : float = 0.3,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_CUBIC,
|
||||
):
|
||||
start_anim()
|
||||
target.position += Vector2.UP * target.size.y
|
||||
target.visible = true
|
||||
|
||||
await add_tween(
|
||||
"position",
|
||||
target_default_pos,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
end_anim()
|
||||
|
||||
func slide_off(
|
||||
duration : float = 0.3,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_CUBIC,
|
||||
):
|
||||
start_anim()
|
||||
await add_tween(
|
||||
"position",
|
||||
target.position - Vector2.UP * target.size.y,
|
||||
duration,
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
target.visible = false
|
||||
target.position = target_default_pos
|
||||
end_anim()
|
||||
|
||||
func bounce(
|
||||
duration : float = 0.4,
|
||||
@@ -58,6 +156,7 @@ func bounce(
|
||||
direction : Vector2 = Vector2.UP,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_BOUNCE,
|
||||
):
|
||||
start_anim()
|
||||
await add_tween(
|
||||
"position",
|
||||
target.position + direction * amount,
|
||||
@@ -66,16 +165,18 @@ func bounce(
|
||||
).finished
|
||||
await add_tween(
|
||||
"position",
|
||||
target.position - direction * amount,
|
||||
target_default_pos,
|
||||
duration/2,
|
||||
transition_type
|
||||
).finished
|
||||
end_anim()
|
||||
|
||||
func shake(
|
||||
duration : float = 0.3,
|
||||
amount : float = 10,
|
||||
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
|
||||
):
|
||||
start_anim()
|
||||
await add_tween(
|
||||
"position",
|
||||
target.position + Vector2.RIGHT * amount/2,
|
||||
@@ -95,6 +196,9 @@ func shake(
|
||||
transition_type
|
||||
).finished
|
||||
|
||||
target.position = target_default_pos
|
||||
end_anim()
|
||||
|
||||
|
||||
func add_tween(
|
||||
property : String,
|
||||
|
||||
Reference in New Issue
Block a user