Testing Death Animations and Shaders

This commit is contained in:
Jakob Feldmann 2023-03-15 21:00:48 +01:00
parent 3ef7f40cae
commit 349e8b332b
13 changed files with 471 additions and 24 deletions

View File

@ -420,6 +420,7 @@ func die() -> void:
levelState.deaths += 1
$BlobbySprite/AnimationTree.active = false
$BlobbySprite/BlobbymationPlayer.play("dying3")
$BlobbySprite/BlobbymationPlayer.play("expandingDisolve")
# TODO Checkpoint system
func respawn() -> void:

View File

@ -1,7 +1,6 @@
[gd_scene load_steps=117 format=2]
[gd_scene load_steps=119 format=2]
[ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1]
[ext_resource path="res://src/Environment/LightingShaderMaterial.tres" type="Material" id=2]
[ext_resource path="res://src/Actors/Blobby/BlobbyStateMachine.gd" type="Script" id=3]
[ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
@ -10,6 +9,39 @@
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 14.9127, 5.98593 )
[sub_resource type="Shader" id=190]
code = "shader_type canvas_item;
float random(vec2 uv) {
return fract(sin(dot(uv, vec2(12.9898, 78.233))) * 438.5453);
}
uniform float sensitivity : hint_range(0.0, 1.0) = 0.;
uniform float scale = 1.;
void fragment() {
// Get size of texture in pixels
float size_x = float(textureSize(TEXTURE, 0).x);
float size_y = float(textureSize(TEXTURE, 0).y);
//
vec4 pixelColor = texture(TEXTURE, UV);
// Create a new \"UV\" which remaps every UV value to a snapped pixel value
vec2 UVr = vec2(floor(UV.x*size_x)/size_x, floor(UV.y*size_y)/size_y);
// Determine whether pixel should be visible or not
float visible = step(sensitivity, random(UVr));
// Draw the pixel, or not depending on if it is visible or not
COLOR = vec4(pixelColor.r, pixelColor.g, pixelColor.b, min(visible, pixelColor.a));
}
void vertex () {
VERTEX = VERTEX * scale;
}"
[sub_resource type="ShaderMaterial" id=191]
shader = SubResource( 190 )
shader_param/sensitivity = 0.0
shader_param/scale = 1.0
[sub_resource type="StreamTexture" id=62]
load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex"
@ -524,6 +556,30 @@ tracks/18/keys = {
"update": 0,
"values": [ Vector2( 4, 0 ) ]
}
tracks/19/type = "value"
tracks/19/path = NodePath(".:material:shader_param/sensitivity")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/imported = false
tracks/19/enabled = true
tracks/19/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
tracks/20/type = "value"
tracks/20/path = NodePath(".:material:shader_param/scale")
tracks/20/interp = 1
tracks/20/loop_wrap = true
tracks/20/imported = false
tracks/20/enabled = true
tracks/20/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 1.0 ]
}
[sub_resource type="Animation" id=67]
length = 0.1
@ -1162,6 +1218,46 @@ tracks/1/keys = {
"values": [ Vector2( 0, 0 ) ]
}
[sub_resource type="Animation" id=192]
resource_name = "expandingDisolve"
length = 2.0
tracks/0/type = "value"
tracks/0/path = NodePath(".:material:shader_param/sensitivity")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.6 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ 0.0, 1.0 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:material:shader_param/scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ 1.0, 2.0 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:frame")
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": 1,
"values": [ 32 ]
}
[sub_resource type="Animation" id=6]
length = 0.1
loop = true
@ -4477,7 +4573,6 @@ tracks/2/keys = {
}
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
material = ExtResource( 2 )
collision_mask = 248
collision/safe_margin = 0.001
script = ExtResource( 4 )
@ -4517,6 +4612,7 @@ transparent_bg = true
visible = false
[node name="BlobbySprite" type="Sprite" parent="."]
material = SubResource( 191 )
position = Vector2( 0, -16 )
scale = Vector2( -1, 1 )
texture = SubResource( 62 )
@ -4556,6 +4652,7 @@ anims/duckingLeft = SubResource( 107 )
anims/dying = SubResource( 184 )
anims/dying2 = SubResource( 187 )
anims/dying3 = SubResource( 188 )
anims/expandingDisolve = SubResource( 192 )
anims/falling = SubResource( 6 )
anims/fallingLeft = SubResource( 106 )
anims/idleTurn = SubResource( 70 )

View File

@ -20,6 +20,7 @@ var state_time := 0.0
# Adds the intial states
func _ready():
signalManager.connect("getback_timer_up", parent, "die")
anim_player.play("RESET")
add_state("idle")
add_state("duck")
add_state("run")

View File

@ -35,6 +35,7 @@ var prev_pos: Vector2
# Gets the camera limits from the tilemap of the level
# Requires "TileMap" to be a sibling of blobby
func _ready():
_set_boundaries()
print(screen_rect)
self.position = blobby.global_position
@ -177,7 +178,7 @@ func reset_limits() -> void:
limit_top = original_limit_top
func _death_cam():
$CameraAnimationPlayer.play("deathCam")
$CameraAnimationPlayer.play("deathCamJustZoom")
func _update_lighting_shader():
# Props to gameendaevour

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=50 format=2]
[gd_scene load_steps=52 format=2]
[ext_resource path="res://src/Actors/BlobbyCam.gd" type="Script" id=1]
[ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2]
@ -303,6 +303,260 @@ tracks/9/keys = {
"values": [ false ]
}
[sub_resource type="Animation" id=15]
resource_name = "deathCamJustZoom"
length = 2.3
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath(".:zoom")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.16 ),
"transitions": PoolRealArray( 1, 3.24901 ),
"update": 0,
"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.2, 0.2 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:limit_left")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = false
tracks/1/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:limit_top")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = false
tracks/2/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath(".:limit_right")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = false
tracks/3/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath(".:limit_bottom")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = false
tracks/4/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath(".:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = false
tracks/5/keys = {
"times": PoolRealArray( 1, 1.61 ),
"transitions": PoolRealArray( 1, 0.120742 ),
"update": 0,
"values": [ 0.0, 360.0 ]
}
tracks/6/type = "method"
tracks/6/path = NodePath("../Blobby")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 1.16 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "respawn"
} ]
}
tracks/7/type = "value"
tracks/7/path = NodePath(".:offset")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, -6 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath(".:drag_margin_h_enabled")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:drag_margin_v_enabled")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
[sub_resource type="Animation" id=14]
resource_name = "deathCamLateRotation"
length = 2.3
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath(".:zoom")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.6 ),
"transitions": PoolRealArray( 1, 3.24901 ),
"update": 0,
"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.001, 0.001 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:limit_left")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:limit_top")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ -10000000 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath(".:limit_right")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath(".:limit_bottom")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 10000000 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath(".:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 1, 1.61 ),
"transitions": PoolRealArray( 1, 0.120742 ),
"update": 0,
"values": [ 0.0, 360.0 ]
}
tracks/6/type = "method"
tracks/6/path = NodePath("../Blobby")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 2.3 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "respawn"
} ]
}
tracks/7/type = "value"
tracks/7/path = NodePath(".:offset")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, -6 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath(".:drag_margin_h_enabled")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/9/type = "value"
tracks/9/path = NodePath(".:drag_margin_v_enabled")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
[sub_resource type="Animation" id=11]
resource_name = "shiftingCenter"
length = 0.6
@ -577,14 +831,18 @@ zoom = Vector2( 0.75, 0.75 )
limit_smoothed = true
drag_margin_h_enabled = true
drag_margin_v_enabled = true
drag_margin_left = 0.05
drag_margin_top = 0.0
drag_margin_bottom = 0.0
drag_margin_right = 0.05
drag_margin_bottom = 0.25
editor_draw_drag_margin = true
script = ExtResource( 1 )
[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."]
anims/RESET = SubResource( 5 )
anims/deathCam = SubResource( 6 )
anims/deathCamJustZoom = SubResource( 15 )
anims/deathCamLateRotation = SubResource( 14 )
anims/shiftingCenter = SubResource( 11 )
anims/shiftingLeft = SubResource( 12 )
anims/shiftingRight = SubResource( 13 )
@ -606,11 +864,11 @@ z_index = -1
texture = ExtResource( 4 )
[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"]
visible = false
z_index = -1
motion_scale = Vector2( 0, 0 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"]
visible = false
z_index = -1
texture = ExtResource( 3 )
@ -619,6 +877,7 @@ z_index = -1
motion_scale = Vector2( 0.001, 0.001 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"]
visible = false
z_index = -1
texture = ExtResource( 2 )
@ -679,10 +938,10 @@ texture = ExtResource( 8 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
visible = false
frames = SubResource( 7 )
frame = 10
frame = 5
playing = true
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
frames = SubResource( 8 )
frame = 1
frame = 10
playing = true

View File

@ -72,7 +72,6 @@ func _on_StompDetector_body_entered(body: Node) -> void:
if body.is_in_group("player"):
remove_from_group("harmful")
$StompDetector.remove_from_group("weakpoint")
$FrogSprite/AnimationTree.active = false
is_hurt = true

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=37 format=2]
[gd_scene load_steps=46 format=2]
[ext_resource path="res://assets/enemy/froshler.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.gd" type="Script" id=2]
@ -252,6 +252,66 @@ tracks/1/keys = {
"values": [ Vector2( -1, 1 ) ]
}
[sub_resource type="Animation" id=50]
resource_name = "sleeping"
length = 1.62
loop = true
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath(".: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": [ 3 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:scale")
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": [ Vector2( 1, 1 ) ]
}
[sub_resource type="Animation" id=51]
resource_name = "sleepingLeft"
length = 1.62
loop = true
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath(".: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": [ 3 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:scale")
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": [ Vector2( -1, 1 ) ]
}
[sub_resource type="AnimationNodeAnimation" id=42]
animation = "idleHappyLeft"
@ -308,6 +368,18 @@ blend_point_0/pos = -1.0
blend_point_1/node = SubResource( 49 )
blend_point_1/pos = 1.0
[sub_resource type="AnimationNodeAnimation" id=52]
animation = "sleepingLeft"
[sub_resource type="AnimationNodeAnimation" id=53]
animation = "sleeping"
[sub_resource type="AnimationNodeBlendSpace1D" id=54]
blend_point_0/node = SubResource( 52 )
blend_point_0/pos = -1.0
blend_point_1/node = SubResource( 53 )
blend_point_1/pos = 1.0
[sub_resource type="AnimationNodeStateMachineTransition" id=27]
[sub_resource type="AnimationNodeStateMachineTransition" id=28]
@ -324,6 +396,14 @@ auto_advance = true
[sub_resource type="AnimationNodeStateMachineTransition" id=32]
[sub_resource type="AnimationNodeStateMachineTransition" id=55]
[sub_resource type="AnimationNodeStateMachineTransition" id=56]
[sub_resource type="AnimationNodeStateMachineTransition" id=57]
[sub_resource type="AnimationNodeStateMachineTransition" id=58]
[sub_resource type="AnimationNodeStateMachine" id=10]
states/idleHappy/node = SubResource( 9 )
states/idleHappy/position = Vector2( -54, 98 )
@ -333,7 +413,9 @@ states/liftOff/node = SubResource( 23 )
states/liftOff/position = Vector2( 184, -12 )
states/midJumping/node = SubResource( 26 )
states/midJumping/position = Vector2( 184, -141 )
transitions = [ "idleHappy", "liftOff", SubResource( 27 ), "liftOff", "midJumping", SubResource( 28 ), "idleMean", "liftOff", SubResource( 29 ), "midJumping", "liftOff", SubResource( 30 ), "liftOff", "idleMean", SubResource( 31 ), "liftOff", "idleHappy", SubResource( 32 ) ]
states/sleeping/node = SubResource( 54 )
states/sleeping/position = Vector2( 176.896, 205.619 )
transitions = [ "idleHappy", "liftOff", SubResource( 27 ), "liftOff", "midJumping", SubResource( 28 ), "idleMean", "liftOff", SubResource( 29 ), "midJumping", "liftOff", SubResource( 30 ), "liftOff", "idleMean", SubResource( 31 ), "liftOff", "idleHappy", SubResource( 32 ), "idleHappy", "sleeping", SubResource( 55 ), "idleMean", "sleeping", SubResource( 56 ), "sleeping", "idleHappy", SubResource( 57 ), "sleeping", "idleMean", SubResource( 58 ) ]
start_node = "idleHappy"
graph_offset = Vector2( -340, -193 )
@ -389,6 +471,8 @@ anims/liftOff = SubResource( 14 )
anims/liftOffLeft = SubResource( 15 )
anims/midJumping = SubResource( 16 )
anims/midJumpingLeft = SubResource( 17 )
anims/sleeping = SubResource( 50 )
anims/sleepingLeft = SubResource( 51 )
[node name="AnimationTree" type="AnimationTree" parent="FrogSprite"]
tree_root = SubResource( 10 )
@ -400,6 +484,7 @@ parameters/idleHappy/blend_position = -1.00141
parameters/idleMean/blend_position = 1.0
parameters/liftOff/blend_position = 1.0
parameters/midJumping/blend_position = 1.0
parameters/sleeping/blend_position = 0.998762
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
position = Vector2( 954, 0 )

View File

@ -51,7 +51,9 @@ func _exit_state(_previous_state, _new_state):
func _animation_logic():
_set_blendspaces_direction()
if parent.is_on_floor():
if (parent.is_bound):
if(parent.is_hurt):
anim_state_playback.travel("sleeping")
elif (parent.is_bound):
anim_state_playback.travel("idleMean")
else:
anim_state_playback.travel("idleHappy")

View File

@ -30,10 +30,6 @@ unique_name_in_owner = true
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
[node name="HUDOverlay" parent="UserInterface/HUD" index="0"]
margin_right = 640.0
margin_bottom = 360.0
[node name="GetBackTimer" parent="UserInterface/HUD/HUDOverlay" index="3"]
anchor_left = 0.0
anchor_right = 0.0
@ -49,10 +45,10 @@ wait_time = 20.0
drag_margin_bottom = 0.3
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 13
frame = 5
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 10
frame = 2
[node name="Blobby" parent="." instance=ExtResource( 2 )]
unique_name_in_owner = true

View File

@ -88,6 +88,12 @@ wait_time = 20.0
[node name="BlobbyCam" parent="." instance=ExtResource( 12 )]
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 8
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 13
[node name="Blobby" parent="." instance=ExtResource( 2 )]
unique_name_in_owner = true
position = Vector2( 36, -24 )

View File

@ -141,7 +141,7 @@ shape = SubResource( 3 )
position = Vector2( 0, 1.5 )
z_index = -1
frames = SubResource( 5 )
frame = 10
frame = 24
playing = true
[node name="Terminal" parent="." instance=ExtResource( 47 )]

View File

@ -388,7 +388,7 @@ animations = [ {
[node name="Coin" type="Area2D"]
position = Vector2( 0, -3.86918 )
scale = Vector2( 0.24, 0.24 )
scale = Vector2( 0.18, 0.18 )
collision_layer = 4
monitorable = false
script = ExtResource( 2 )
@ -407,7 +407,7 @@ position = Vector2( 0, -2.52127 )
scale = Vector2( 0.149428, 0.151196 )
frames = SubResource( 4 )
animation = "rotate"
frame = 301
frame = 42
playing = true
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -45,8 +45,8 @@ script = ExtResource( 5 )
[node name="HUDOverlay" type="ColorRect" parent="."]
unique_name_in_owner = true
margin_right = 480.0
margin_bottom = 270.0
margin_right = 640.0
margin_bottom = 360.0
color = Color( 0, 0, 0, 0 )
[node name="Currency" type="Label" parent="HUDOverlay"]