mirror of
https://github.com/GDQuest/godot-platformer-2d.git
synced 2026-01-23 02:14:19 +00:00
Add animated transition beetween levels
This commit is contained in:
parent
5c540c668b
commit
91e0659b8c
10 changed files with 392 additions and 79 deletions
BIN
game/assets/UI/loading_icon.png
Normal file
BIN
game/assets/UI/loading_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
34
game/assets/UI/loading_icon.png.import
Normal file
34
game/assets/UI/loading_icon.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/loading_icon.png-e328504ca04771078a22cab4caafd41a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/UI/loading_icon.png"
|
||||
dest_files=[ "res://.import/loading_icon.png-e328504ca04771078a22cab4caafd41a.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
||||
BIN
game/assets/UI/player_art.png
Normal file
BIN
game/assets/UI/player_art.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
34
game/assets/UI/player_art.png.import
Normal file
34
game/assets/UI/player_art.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/player_art.png-7b84e8940437deef8a50bb0d84c732ca.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/UI/player_art.png"
|
||||
dest_files=[ "res://.import/player_art.png-7b84e8940437deef8a50bb0d84c732ca.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
||||
|
|
@ -17,6 +17,11 @@ points = PoolVector2Array( 0, 0, 40, 0, 40, 40, 0, 40 )
|
|||
0/tile_mode = 0
|
||||
0/occluder_offset = Vector2( 0, 0 )
|
||||
0/navigation_offset = Vector2( 0, 0 )
|
||||
0/shape_offset = Vector2( 0, 0 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
0/shape = SubResource( 1 )
|
||||
0/shape_one_way = false
|
||||
0/shape_one_way_margin = 1.0
|
||||
0/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
|
|
@ -33,6 +38,11 @@ points = PoolVector2Array( 0, 0, 40, 0, 40, 40, 0, 40 )
|
|||
1/tile_mode = 0
|
||||
1/occluder_offset = Vector2( 0, 0 )
|
||||
1/navigation_offset = Vector2( 0, 0 )
|
||||
1/shape_offset = Vector2( 0, 0 )
|
||||
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
1/shape = SubResource( 2 )
|
||||
1/shape_one_way = true
|
||||
1/shape_one_way_margin = 1.0
|
||||
1/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": true,
|
||||
|
|
@ -49,6 +59,10 @@ points = PoolVector2Array( 0, 0, 40, 0, 40, 40, 0, 40 )
|
|||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 0, 0 )
|
||||
2/navigation_offset = Vector2( 0, 0 )
|
||||
2/shape_offset = Vector2( 0, 0 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
2/shape_one_way = false
|
||||
2/shape_one_way_margin = 0.0
|
||||
2/shapes = [ ]
|
||||
2/z_index = 0
|
||||
3/name = "purple"
|
||||
|
|
@ -59,5 +73,9 @@ points = PoolVector2Array( 0, 0, 40, 0, 40, 40, 0, 40 )
|
|||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 0.0
|
||||
3/shapes = [ ]
|
||||
3/z_index = 0
|
||||
|
|
|
|||
|
|
@ -59,6 +59,11 @@ points = PoolVector2Array( 0, 0, 80, 0, 80, 80, 0, 80 )
|
|||
3/autotile/z_index_map = [ ]
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape = SubResource( 1 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 1.0
|
||||
3/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 1 ),
|
||||
"one_way": false,
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
extends Node
|
||||
# Loads and unloads levels
|
||||
|
||||
onready var scene_tree := get_tree()
|
||||
|
||||
var _game: Node = null
|
||||
var _player: Player = null
|
||||
var _level: Node2D = null
|
||||
|
||||
onready var scene_tree := get_tree()
|
||||
|
||||
|
||||
|
||||
|
||||
func setup(game: Node, player: Player, Level: PackedScene) -> void:
|
||||
_game = game
|
||||
|
|
@ -15,32 +17,35 @@ func setup(game: Node, player: Player, Level: PackedScene) -> void:
|
|||
|
||||
|
||||
func trigger(NewLevel: PackedScene, portal_name: String = "") -> void:
|
||||
_game.remove_child(_player)
|
||||
|
||||
if _level:
|
||||
scene_tree.paused = true
|
||||
# _game.transition.animation_player.play("transition")
|
||||
_game.transition.start_transition_animation()
|
||||
# Covers the screen before changing the level to avoid visual discrepancies
|
||||
yield(_game.transition, "screen_covered")
|
||||
_level.queue_free()
|
||||
yield(_level, "tree_exited")
|
||||
|
||||
|
||||
# The player is removed after the transition is covering the screen
|
||||
_game.remove_child(_player)
|
||||
_level = NewLevel.instance()
|
||||
|
||||
|
||||
var player_position_node: Node2D = (
|
||||
_level.get_node("Checkpoints").get_child(0)
|
||||
if portal_name.empty()
|
||||
else _level.get_node("Portals/%s" % portal_name))
|
||||
else _level.get_node("Portals/%s" % portal_name)
|
||||
)
|
||||
_player.global_position = player_position_node.global_position
|
||||
_player.has_teleported = not portal_name.empty()
|
||||
|
||||
|
||||
for checkpoint_name in _game.visited_checkpoints.get(_level.name, []):
|
||||
var checkpoint: Area2D = _level.get_node("Checkpoints/%s" % checkpoint_name)
|
||||
checkpoint.is_visited = true
|
||||
|
||||
# if _game.transition.animation_player.current_animation == "transition":
|
||||
# yield(_game.transition, "peaked")
|
||||
|
||||
|
||||
_game.level = _level
|
||||
_game.add_child(_level)
|
||||
_game.add_child(_player)
|
||||
|
||||
|
||||
# The loading is done
|
||||
_game.transition.finish_transition_animation()
|
||||
|
||||
scene_tree.paused = false
|
||||
|
|
|
|||
|
|
@ -1,57 +1,12 @@
|
|||
[gd_scene load_steps=9 format=2]
|
||||
[gd_scene load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://src/Main/Game.gd" type="Script" id=1]
|
||||
[ext_resource path="res://assets/theme/gdquest.theme" type="Theme" id=2]
|
||||
[ext_resource path="res://src/UI/debug/DebugDock.gd" type="Script" id=3]
|
||||
[ext_resource path="res://src/UI/debug/DebugPanel.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://src/Player/Player.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://src/Levels/SkyParallaxBackground.tscn" type="PackedScene" id=6]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "<BASE>"
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "transition"
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.4, 0.6 ),
|
||||
"transitions": PoolRealArray( 0.732043, 1.51572, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0.4 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ "peaked" ],
|
||||
"method": "emit_signal"
|
||||
} ]
|
||||
}
|
||||
[ext_resource path="res://src/UI/Transition.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://src/Player/Player.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://src/Levels/SkyParallaxBackground.tscn" type="PackedScene" id=9]
|
||||
|
||||
[node name="Game" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
|
|
@ -92,21 +47,10 @@ mouse_filter = 2
|
|||
reference_path = NodePath("../../../../../Game/Player/StateMachine")
|
||||
properties = PoolStringArray( "_state_name" )
|
||||
|
||||
[node name="Transition" type="ColorRect" parent="UI"]
|
||||
pause_mode = 2
|
||||
modulate = Color( 1, 1, 1, 0 )
|
||||
margin_right = 1920.0
|
||||
margin_bottom = 1080.0
|
||||
mouse_filter = 2
|
||||
color = Color( 0, 0, 0, 1 )
|
||||
[node name="Transition" parent="UI" instance=ExtResource( 5 )]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="UI/Transition"]
|
||||
autoplay = "<BASE>"
|
||||
anims/<BASE> = SubResource( 1 )
|
||||
anims/transition = SubResource( 2 )
|
||||
[node name="Player" parent="." instance=ExtResource( 8 )]
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource( 5 )]
|
||||
|
||||
[node name="SkyParallaxBackground" parent="." instance=ExtResource( 6 )]
|
||||
[node name="SkyParallaxBackground" parent="." instance=ExtResource( 9 )]
|
||||
|
||||
[editable path="Player"]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,36 @@
|
|||
extends ColorRect
|
||||
|
||||
signal screen_covered
|
||||
|
||||
signal peaked
|
||||
var _loading_anim_started := false
|
||||
|
||||
onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
onready var _animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
||||
|
||||
# The level transition animations will be fade_outin->[fade_in_extras->
|
||||
# loading->fade_out_extras->]fade_out
|
||||
# [fade_in_extras->loading->fade_out_extras->] is optional and its
|
||||
# length depends on the extra time the LevelLoader takes to load the next level
|
||||
|
||||
|
||||
func start_transition_animation() -> void:
|
||||
_animation_player.play("fade_in")
|
||||
|
||||
|
||||
func finish_transition_animation() -> void:
|
||||
if _loading_anim_started:
|
||||
_animation_player.play("fade_out_extras")
|
||||
_loading_anim_started = false
|
||||
else:
|
||||
_animation_player.play("fade_out")
|
||||
|
||||
|
||||
func _on_AnimationPlayer_animation_finished(anim_name: String) -> void:
|
||||
if anim_name == "fade_in":
|
||||
emit_signal("screen_covered")
|
||||
_animation_player.play("fade_in_extras")
|
||||
elif anim_name == "fade_in_extras":
|
||||
_loading_anim_started = true
|
||||
_animation_player.play("loading")
|
||||
elif anim_name == "fade_out_extras":
|
||||
_animation_player.play("fade_out")
|
||||
|
|
|
|||
243
game/src/UI/Transition.tscn
Normal file
243
game/src/UI/Transition.tscn
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
[gd_scene load_steps=10 format=2]
|
||||
|
||||
[ext_resource path="res://assets/UI/loading_icon.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/UI/player_art.png" type="Texture" id=2]
|
||||
[ext_resource path="res://src/UI/Transition.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "<BASE>"
|
||||
length = 0.001
|
||||
loop = true
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "fade_in"
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = false
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.5, 0.6 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("LoadingSprite:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("PlayerArtSprite:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "fade_in_extras"
|
||||
length = 0.3
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("LoadingSprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0 ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("LoadingSprite:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("PlayerArtSprite:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("PlayerArtSprite:position")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 350, 862 ) ]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("PlayerArtSprite:flip_h")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ false ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.1, 0.6 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
resource_name = "fade_out_extras"
|
||||
length = 0.3
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("LoadingSprite:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("PlayerArtSprite:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
length = 3.6
|
||||
loop = true
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("LoadingSprite:frame")
|
||||
tracks/0/interp = 0
|
||||
tracks/0/loop_wrap = false
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.15, 0.3, 0.45, 0.6, 0.75, 0.9, 1.05, 1.2, 1.35, 1.5, 1.65, 1.8, 1.95, 2.1, 2.25, 2.4, 2.55, 2.7, 2.85, 3, 3.15, 3.3, 3.45 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7 ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("PlayerArtSprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.2, 3.4 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 350, 862 ), Vector2( 450, 832 ), Vector2( 550, 862 ), Vector2( 650, 832 ), Vector2( 750, 862 ), Vector2( 850, 832 ), Vector2( 950, 862 ), Vector2( 1050, 832 ), Vector2( 1150, 862 ), Vector2( 1250, 832 ), Vector2( 1150, 862 ), Vector2( 1050, 832 ), Vector2( 950, 862 ), Vector2( 850, 832 ), Vector2( 750, 862 ), Vector2( 650, 832 ), Vector2( 550, 862 ), Vector2( 450, 832 ) ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("PlayerArtSprite:flip_h")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0, 1.8 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
|
||||
[node name="Transition" type="ColorRect"]
|
||||
pause_mode = 2
|
||||
modulate = Color( 1, 1, 1, 0 )
|
||||
margin_right = 1920.0
|
||||
margin_bottom = 1080.0
|
||||
mouse_filter = 2
|
||||
color = Color( 0, 0, 0, 1 )
|
||||
script = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "<BASE>"
|
||||
anims/<BASE> = SubResource( 1 )
|
||||
anims/fade_in = SubResource( 2 )
|
||||
anims/fade_in_extras = SubResource( 3 )
|
||||
anims/fade_out = SubResource( 4 )
|
||||
anims/fade_out_extras = SubResource( 5 )
|
||||
anims/loading = SubResource( 6 )
|
||||
|
||||
[node name="LoadingSprite" type="Sprite" parent="."]
|
||||
modulate = Color( 1, 1, 1, 0 )
|
||||
position = Vector2( 1809.7, 975.4 )
|
||||
scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 1 )
|
||||
hframes = 8
|
||||
|
||||
[node name="PlayerArtSprite" type="Sprite" parent="."]
|
||||
modulate = Color( 1, 1, 1, 0 )
|
||||
position = Vector2( 350, 862 )
|
||||
texture = ExtResource( 2 )
|
||||
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue