Testing Death Animations and Shaders
This commit is contained in:
parent
3ef7f40cae
commit
349e8b332b
@ -420,6 +420,7 @@ func die() -> void:
|
|||||||
levelState.deaths += 1
|
levelState.deaths += 1
|
||||||
$BlobbySprite/AnimationTree.active = false
|
$BlobbySprite/AnimationTree.active = false
|
||||||
$BlobbySprite/BlobbymationPlayer.play("dying3")
|
$BlobbySprite/BlobbymationPlayer.play("dying3")
|
||||||
|
$BlobbySprite/BlobbymationPlayer.play("expandingDisolve")
|
||||||
|
|
||||||
# TODO Checkpoint system
|
# TODO Checkpoint system
|
||||||
func respawn() -> void:
|
func respawn() -> void:
|
||||||
|
|||||||
@ -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://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/BlobbyStateMachine.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4]
|
[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]
|
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
|
||||||
@ -10,6 +9,39 @@
|
|||||||
[sub_resource type="RectangleShape2D" id=2]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 14.9127, 5.98593 )
|
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]
|
[sub_resource type="StreamTexture" id=62]
|
||||||
load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex"
|
load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex"
|
||||||
|
|
||||||
@ -524,6 +556,30 @@ tracks/18/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector2( 4, 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]
|
[sub_resource type="Animation" id=67]
|
||||||
length = 0.1
|
length = 0.1
|
||||||
@ -1162,6 +1218,46 @@ tracks/1/keys = {
|
|||||||
"values": [ Vector2( 0, 0 ) ]
|
"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]
|
[sub_resource type="Animation" id=6]
|
||||||
length = 0.1
|
length = 0.1
|
||||||
loop = true
|
loop = true
|
||||||
@ -4477,7 +4573,6 @@ tracks/2/keys = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
|
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
|
||||||
material = ExtResource( 2 )
|
|
||||||
collision_mask = 248
|
collision_mask = 248
|
||||||
collision/safe_margin = 0.001
|
collision/safe_margin = 0.001
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 4 )
|
||||||
@ -4517,6 +4612,7 @@ transparent_bg = true
|
|||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="BlobbySprite" type="Sprite" parent="."]
|
[node name="BlobbySprite" type="Sprite" parent="."]
|
||||||
|
material = SubResource( 191 )
|
||||||
position = Vector2( 0, -16 )
|
position = Vector2( 0, -16 )
|
||||||
scale = Vector2( -1, 1 )
|
scale = Vector2( -1, 1 )
|
||||||
texture = SubResource( 62 )
|
texture = SubResource( 62 )
|
||||||
@ -4556,6 +4652,7 @@ anims/duckingLeft = SubResource( 107 )
|
|||||||
anims/dying = SubResource( 184 )
|
anims/dying = SubResource( 184 )
|
||||||
anims/dying2 = SubResource( 187 )
|
anims/dying2 = SubResource( 187 )
|
||||||
anims/dying3 = SubResource( 188 )
|
anims/dying3 = SubResource( 188 )
|
||||||
|
anims/expandingDisolve = SubResource( 192 )
|
||||||
anims/falling = SubResource( 6 )
|
anims/falling = SubResource( 6 )
|
||||||
anims/fallingLeft = SubResource( 106 )
|
anims/fallingLeft = SubResource( 106 )
|
||||||
anims/idleTurn = SubResource( 70 )
|
anims/idleTurn = SubResource( 70 )
|
||||||
|
|||||||
@ -20,6 +20,7 @@ var state_time := 0.0
|
|||||||
# Adds the intial states
|
# Adds the intial states
|
||||||
func _ready():
|
func _ready():
|
||||||
signalManager.connect("getback_timer_up", parent, "die")
|
signalManager.connect("getback_timer_up", parent, "die")
|
||||||
|
anim_player.play("RESET")
|
||||||
add_state("idle")
|
add_state("idle")
|
||||||
add_state("duck")
|
add_state("duck")
|
||||||
add_state("run")
|
add_state("run")
|
||||||
|
|||||||
@ -35,6 +35,7 @@ var prev_pos: Vector2
|
|||||||
# Gets the camera limits from the tilemap of the level
|
# Gets the camera limits from the tilemap of the level
|
||||||
# Requires "TileMap" to be a sibling of blobby
|
# Requires "TileMap" to be a sibling of blobby
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
||||||
_set_boundaries()
|
_set_boundaries()
|
||||||
print(screen_rect)
|
print(screen_rect)
|
||||||
self.position = blobby.global_position
|
self.position = blobby.global_position
|
||||||
@ -177,7 +178,7 @@ func reset_limits() -> void:
|
|||||||
limit_top = original_limit_top
|
limit_top = original_limit_top
|
||||||
|
|
||||||
func _death_cam():
|
func _death_cam():
|
||||||
$CameraAnimationPlayer.play("deathCam")
|
$CameraAnimationPlayer.play("deathCamJustZoom")
|
||||||
|
|
||||||
func _update_lighting_shader():
|
func _update_lighting_shader():
|
||||||
# Props to gameendaevour
|
# Props to gameendaevour
|
||||||
|
|||||||
@ -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://src/Actors/BlobbyCam.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2]
|
[ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2]
|
||||||
@ -303,6 +303,260 @@ tracks/9/keys = {
|
|||||||
"values": [ false ]
|
"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]
|
[sub_resource type="Animation" id=11]
|
||||||
resource_name = "shiftingCenter"
|
resource_name = "shiftingCenter"
|
||||||
length = 0.6
|
length = 0.6
|
||||||
@ -577,14 +831,18 @@ zoom = Vector2( 0.75, 0.75 )
|
|||||||
limit_smoothed = true
|
limit_smoothed = true
|
||||||
drag_margin_h_enabled = true
|
drag_margin_h_enabled = true
|
||||||
drag_margin_v_enabled = true
|
drag_margin_v_enabled = true
|
||||||
|
drag_margin_left = 0.05
|
||||||
drag_margin_top = 0.0
|
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
|
editor_draw_drag_margin = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
anims/RESET = SubResource( 5 )
|
anims/RESET = SubResource( 5 )
|
||||||
anims/deathCam = SubResource( 6 )
|
anims/deathCam = SubResource( 6 )
|
||||||
|
anims/deathCamJustZoom = SubResource( 15 )
|
||||||
|
anims/deathCamLateRotation = SubResource( 14 )
|
||||||
anims/shiftingCenter = SubResource( 11 )
|
anims/shiftingCenter = SubResource( 11 )
|
||||||
anims/shiftingLeft = SubResource( 12 )
|
anims/shiftingLeft = SubResource( 12 )
|
||||||
anims/shiftingRight = SubResource( 13 )
|
anims/shiftingRight = SubResource( 13 )
|
||||||
@ -606,11 +864,11 @@ z_index = -1
|
|||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
|
|
||||||
[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"]
|
[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||||
visible = false
|
|
||||||
z_index = -1
|
z_index = -1
|
||||||
motion_scale = Vector2( 0, 0 )
|
motion_scale = Vector2( 0, 0 )
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"]
|
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"]
|
||||||
|
visible = false
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
@ -619,6 +877,7 @@ z_index = -1
|
|||||||
motion_scale = Vector2( 0.001, 0.001 )
|
motion_scale = Vector2( 0.001, 0.001 )
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"]
|
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"]
|
||||||
|
visible = false
|
||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 2 )
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
@ -679,10 +938,10 @@ texture = ExtResource( 8 )
|
|||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
visible = false
|
visible = false
|
||||||
frames = SubResource( 7 )
|
frames = SubResource( 7 )
|
||||||
frame = 10
|
frame = 5
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
frames = SubResource( 8 )
|
frames = SubResource( 8 )
|
||||||
frame = 1
|
frame = 10
|
||||||
playing = true
|
playing = true
|
||||||
|
|||||||
@ -72,7 +72,6 @@ func _on_StompDetector_body_entered(body: Node) -> void:
|
|||||||
if body.is_in_group("player"):
|
if body.is_in_group("player"):
|
||||||
remove_from_group("harmful")
|
remove_from_group("harmful")
|
||||||
$StompDetector.remove_from_group("weakpoint")
|
$StompDetector.remove_from_group("weakpoint")
|
||||||
$FrogSprite/AnimationTree.active = false
|
|
||||||
is_hurt = true
|
is_hurt = true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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://assets/enemy/froshler.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.gd" type="Script" id=2]
|
[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 ) ]
|
"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]
|
[sub_resource type="AnimationNodeAnimation" id=42]
|
||||||
animation = "idleHappyLeft"
|
animation = "idleHappyLeft"
|
||||||
|
|
||||||
@ -308,6 +368,18 @@ blend_point_0/pos = -1.0
|
|||||||
blend_point_1/node = SubResource( 49 )
|
blend_point_1/node = SubResource( 49 )
|
||||||
blend_point_1/pos = 1.0
|
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=27]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=28]
|
[sub_resource type="AnimationNodeStateMachineTransition" id=28]
|
||||||
@ -324,6 +396,14 @@ auto_advance = true
|
|||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=32]
|
[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]
|
[sub_resource type="AnimationNodeStateMachine" id=10]
|
||||||
states/idleHappy/node = SubResource( 9 )
|
states/idleHappy/node = SubResource( 9 )
|
||||||
states/idleHappy/position = Vector2( -54, 98 )
|
states/idleHappy/position = Vector2( -54, 98 )
|
||||||
@ -333,7 +413,9 @@ states/liftOff/node = SubResource( 23 )
|
|||||||
states/liftOff/position = Vector2( 184, -12 )
|
states/liftOff/position = Vector2( 184, -12 )
|
||||||
states/midJumping/node = SubResource( 26 )
|
states/midJumping/node = SubResource( 26 )
|
||||||
states/midJumping/position = Vector2( 184, -141 )
|
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"
|
start_node = "idleHappy"
|
||||||
graph_offset = Vector2( -340, -193 )
|
graph_offset = Vector2( -340, -193 )
|
||||||
|
|
||||||
@ -389,6 +471,8 @@ anims/liftOff = SubResource( 14 )
|
|||||||
anims/liftOffLeft = SubResource( 15 )
|
anims/liftOffLeft = SubResource( 15 )
|
||||||
anims/midJumping = SubResource( 16 )
|
anims/midJumping = SubResource( 16 )
|
||||||
anims/midJumpingLeft = SubResource( 17 )
|
anims/midJumpingLeft = SubResource( 17 )
|
||||||
|
anims/sleeping = SubResource( 50 )
|
||||||
|
anims/sleepingLeft = SubResource( 51 )
|
||||||
|
|
||||||
[node name="AnimationTree" type="AnimationTree" parent="FrogSprite"]
|
[node name="AnimationTree" type="AnimationTree" parent="FrogSprite"]
|
||||||
tree_root = SubResource( 10 )
|
tree_root = SubResource( 10 )
|
||||||
@ -400,6 +484,7 @@ parameters/idleHappy/blend_position = -1.00141
|
|||||||
parameters/idleMean/blend_position = 1.0
|
parameters/idleMean/blend_position = 1.0
|
||||||
parameters/liftOff/blend_position = 1.0
|
parameters/liftOff/blend_position = 1.0
|
||||||
parameters/midJumping/blend_position = 1.0
|
parameters/midJumping/blend_position = 1.0
|
||||||
|
parameters/sleeping/blend_position = 0.998762
|
||||||
|
|
||||||
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
|
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
|
||||||
position = Vector2( 954, 0 )
|
position = Vector2( 954, 0 )
|
||||||
|
|||||||
@ -51,7 +51,9 @@ func _exit_state(_previous_state, _new_state):
|
|||||||
func _animation_logic():
|
func _animation_logic():
|
||||||
_set_blendspaces_direction()
|
_set_blendspaces_direction()
|
||||||
if parent.is_on_floor():
|
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")
|
anim_state_playback.travel("idleMean")
|
||||||
else:
|
else:
|
||||||
anim_state_playback.travel("idleHappy")
|
anim_state_playback.travel("idleHappy")
|
||||||
|
|||||||
@ -30,10 +30,6 @@ unique_name_in_owner = true
|
|||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
|
[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"]
|
[node name="GetBackTimer" parent="UserInterface/HUD/HUDOverlay" index="3"]
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
@ -49,10 +45,10 @@ wait_time = 20.0
|
|||||||
drag_margin_bottom = 0.3
|
drag_margin_bottom = 0.3
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
||||||
frame = 13
|
frame = 5
|
||||||
|
|
||||||
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
||||||
frame = 10
|
frame = 2
|
||||||
|
|
||||||
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@ -88,6 +88,12 @@ wait_time = 20.0
|
|||||||
|
|
||||||
[node name="BlobbyCam" parent="." instance=ExtResource( 12 )]
|
[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 )]
|
[node name="Blobby" parent="." instance=ExtResource( 2 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2( 36, -24 )
|
position = Vector2( 36, -24 )
|
||||||
|
|||||||
@ -141,7 +141,7 @@ shape = SubResource( 3 )
|
|||||||
position = Vector2( 0, 1.5 )
|
position = Vector2( 0, 1.5 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
frames = SubResource( 5 )
|
frames = SubResource( 5 )
|
||||||
frame = 10
|
frame = 24
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="Terminal" parent="." instance=ExtResource( 47 )]
|
[node name="Terminal" parent="." instance=ExtResource( 47 )]
|
||||||
|
|||||||
@ -388,7 +388,7 @@ animations = [ {
|
|||||||
|
|
||||||
[node name="Coin" type="Area2D"]
|
[node name="Coin" type="Area2D"]
|
||||||
position = Vector2( 0, -3.86918 )
|
position = Vector2( 0, -3.86918 )
|
||||||
scale = Vector2( 0.24, 0.24 )
|
scale = Vector2( 0.18, 0.18 )
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
monitorable = false
|
monitorable = false
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
@ -407,7 +407,7 @@ position = Vector2( 0, -2.52127 )
|
|||||||
scale = Vector2( 0.149428, 0.151196 )
|
scale = Vector2( 0.149428, 0.151196 )
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 4 )
|
||||||
animation = "rotate"
|
animation = "rotate"
|
||||||
frame = 301
|
frame = 42
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||||
|
|||||||
@ -45,8 +45,8 @@ script = ExtResource( 5 )
|
|||||||
|
|
||||||
[node name="HUDOverlay" type="ColorRect" parent="."]
|
[node name="HUDOverlay" type="ColorRect" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
margin_right = 480.0
|
margin_right = 640.0
|
||||||
margin_bottom = 270.0
|
margin_bottom = 360.0
|
||||||
color = Color( 0, 0, 0, 0 )
|
color = Color( 0, 0, 0, 0 )
|
||||||
|
|
||||||
[node name="Currency" type="Label" parent="HUDOverlay"]
|
[node name="Currency" type="Label" parent="HUDOverlay"]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user