diff --git a/game/Scenes/WelcomeScreen.tscn b/game/Scenes/WelcomeScreen.tscn index c03dbd7..24c8904 100644 --- a/game/Scenes/WelcomeScreen.tscn +++ b/game/Scenes/WelcomeScreen.tscn @@ -1,6 +1,9 @@ -[gd_scene format=3 uid="uid://57px5totoewp"] +[gd_scene load_steps=2 format=3 uid="uid://57px5totoewp"] + +[ext_resource type="Script" uid="uid://mgj6wd25jrsn" path="res://Scripts/WelcomeScreen/welcome_screen.gd" id="1_5gy0r"] [node name="WelcomeScreen" type="CanvasLayer"] +script = ExtResource("1_5gy0r") [node name="ColorRect" type="ColorRect" parent="."] anchors_preset = 15 diff --git a/game/Scripts/WelcomeScreen/welcome_screen.gd b/game/Scripts/WelcomeScreen/welcome_screen.gd new file mode 100644 index 0000000..64a0f55 --- /dev/null +++ b/game/Scripts/WelcomeScreen/welcome_screen.gd @@ -0,0 +1,43 @@ +extends CanvasLayer + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + + update_progress_bar(80) + + + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + + + +func update_progress_bar(value: float): + var start_value = $ProgressBar.value + var percent = 0 + + while percent < 100: + var ease = expo_ease_in_out(start_value, value, percent) + $ProgressBar.value = ease + percent += 1 + await get_tree().create_timer(0.05).timeout + + + +func expo_ease_in_out(start: float, end: float, percent: int) -> float: + var t: float = clamp(float(percent) / 100.0, 0, 1.0) + var change: float = end - start + + if t == 0: + return start + if t == 1.0: + return end + + if t < 0.5: + return change / 2 * pow(2, 20 * t - 10) + start + else: + return change / 2 * (-pow(2, -20 * t + 10) + 2) + start diff --git a/game/Scripts/WelcomeScreen/welcome_screen.gd.uid b/game/Scripts/WelcomeScreen/welcome_screen.gd.uid new file mode 100644 index 0000000..faf5c33 --- /dev/null +++ b/game/Scripts/WelcomeScreen/welcome_screen.gd.uid @@ -0,0 +1 @@ +uid://mgj6wd25jrsn