diff --git a/src/models/enemies/trash_can/TrashCan.tscn b/src/models/enemies/trash_can/TrashCan.tscn index fdec38a..8cde8e8 100644 --- a/src/models/enemies/trash_can/TrashCan.tscn +++ b/src/models/enemies/trash_can/TrashCan.tscn @@ -13,7 +13,8 @@ script = ExtResource( 2 ) [node name="Sprite" type="AnimatedSprite" parent="."] position = Vector2( 3, 0 ) frames = ExtResource( 1 ) -animation = "rolling" +animation = "spawn" +frame = 6 playing = true [node name="EnemyCollider" type="Area2D" parent="."] @@ -21,3 +22,11 @@ playing = true [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyCollider"] position = Vector2( 3.5, 5 ) shape = SubResource( 1 ) + +[node name="Spawn_Animation_Start" type="Timer" parent="."] +wait_time = 0.5 +one_shot = true +autostart = true + +[connection signal="animation_finished" from="Sprite" to="." method="_on_sprite_animation_finished"] +[connection signal="timeout" from="Spawn_Animation_Start" to="." method="_on_Spawn_Animation_Start_timeout"] diff --git a/src/models/enemies/trash_can/sprites/spawn.png b/src/models/enemies/trash_can/sprites/spawn.png new file mode 100644 index 0000000..be2ca21 Binary files /dev/null and b/src/models/enemies/trash_can/sprites/spawn.png differ diff --git a/src/models/enemies/trash_can/sprites/spawn.png.import b/src/models/enemies/trash_can/sprites/spawn.png.import new file mode 100644 index 0000000..6f3c9ff --- /dev/null +++ b/src/models/enemies/trash_can/sprites/spawn.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn.png-cd75f3f5bf1649bb857c394b2ea0cfad.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/models/enemies/trash_can/sprites/spawn.png" +dest_files=[ "res://.import/spawn.png-cd75f3f5bf1649bb857c394b2ea0cfad.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=false +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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/models/enemies/trash_can/sprites/trash_can_spriteframes.tres b/src/models/enemies/trash_can/sprites/trash_can_spriteframes.tres index 37ff401..f80699a 100644 --- a/src/models/enemies/trash_can/sprites/trash_can_spriteframes.tres +++ b/src/models/enemies/trash_can/sprites/trash_can_spriteframes.tres @@ -1,6 +1,7 @@ -[gd_resource type="SpriteFrames" load_steps=6 format=2] +[gd_resource type="SpriteFrames" load_steps=14 format=2] [ext_resource path="res://src/models/enemies/trash_can/sprites/rolling.png" type="Texture" id=1] +[ext_resource path="res://src/models/enemies/trash_can/sprites/spawn.png" type="Texture" id=2] [sub_resource type="AtlasTexture" id=1] atlas = ExtResource( 1 ) @@ -18,10 +19,43 @@ region = Rect2( 44, 0, 22, 24 ) atlas = ExtResource( 1 ) region = Rect2( 66, 0, 22, 24 ) +[sub_resource type="AtlasTexture" id=5] +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=6] +atlas = ExtResource( 2 ) +region = Rect2( 22, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=7] +atlas = ExtResource( 2 ) +region = Rect2( 44, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=8] +atlas = ExtResource( 2 ) +region = Rect2( 66, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=9] +atlas = ExtResource( 2 ) +region = Rect2( 88, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=10] +atlas = ExtResource( 2 ) +region = Rect2( 110, 0, 22, 24 ) + +[sub_resource type="AtlasTexture" id=11] +atlas = ExtResource( 2 ) +region = Rect2( 132, 0, 22, 24 ) + [resource] animations = [ { "frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ], "loop": true, "name": "rolling", "speed": 16.0 +}, { +"frames": [ SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ) ], +"loop": false, +"name": "spawn", +"speed": 12.0 } ] diff --git a/src/models/enemies/trash_can/trash_can.gd b/src/models/enemies/trash_can/trash_can.gd index e616c5f..f7c2cb8 100644 --- a/src/models/enemies/trash_can/trash_can.gd +++ b/src/models/enemies/trash_can/trash_can.gd @@ -24,7 +24,7 @@ func _ready(): movement_start = "top" randomize() global_position.x = randi()%248 + 40 # 320 - 12 - 40 - global_position.y = -20 + global_position.y = 4 path_sprite.texture = load("res://src/models/enemies/trash_can/sprites/path/vertical.png") path_sprite.global_position.y = 21 @@ -35,7 +35,7 @@ func _ready(): movement_start = ["left", "right"][randi()%2] randomize() global_position.y = randi()%60 + 20 - global_position.x = 360 if movement_start == "right" else -20 + global_position.x = 310 if movement_start == "right" else 10 path_sprite.texture = load("res://src/models/enemies/trash_can/sprites/path/horizontal.png") path_sprite.global_position.y = self.global_position.y @@ -54,8 +54,8 @@ func drop_trash(): get_parent().call_deferred("add_child", trash_drop) func _physics_process(delta): - if start_timer < 2: - path_sprite.modulate.a = (2 - start_timer) / 2 + if start_timer < 1: + path_sprite.modulate.a = (1 - start_timer) / 2 start_timer += delta return drop_timer += delta @@ -89,3 +89,10 @@ func _physics_process(delta): drop_trash() velocity = move_and_slide(velocity) + +func _on_sprite_animation_finished(): + if $Sprite.animation == "spawn": + $Sprite.play("rolling") + +func _on_Spawn_Animation_Start_timeout(): + $Sprite.play("spawn")