Enhanced snail animations and interactions
Added new animation states for the snail entity, including 'Move' and 'Sleep'. The snail now hides certain elements when eating and plays appropriate animations when transitioning between states. Also introduced a new texture for sleep indication.
This commit is contained in:
parent
5777a7f2f1
commit
b8f42a552e
6 changed files with 268 additions and 9 deletions
|
|
@ -1,17 +1,17 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://bnwvtlsvxjmel"]
|
||||
[gd_scene load_steps=14 format=3 uid="uid://bnwvtlsvxjmel"]
|
||||
|
||||
[ext_resource type="Script" path="res://entities/scripts/snail.gd" id="1_lkvd1"]
|
||||
[ext_resource type="Script" path="res://entities/scripts/finite_state_machine.gd" id="1_tejvt"]
|
||||
[ext_resource type="Texture2D" uid="uid://dh8fo7865wgs" path="res://resources/textures/snail.png" id="2_yor00"]
|
||||
[ext_resource type="Script" path="res://entities/snail/states/snail_sleeping.gd" id="3_wnrnl"]
|
||||
[ext_resource type="Script" path="res://entities/snail/states/snail_eating.gd" id="4_1abwi"]
|
||||
[ext_resource type="Texture2D" uid="uid://coqnsy2doe00a" path="res://resources/textures/z.png" id="5_owmpd"]
|
||||
[ext_resource type="Texture2D" uid="uid://d30yqtob6phcj" path="res://resources/textures/snail_body.png" id="7_8spp3"]
|
||||
[ext_resource type="Texture2D" uid="uid://5vt8eaihmut3" path="res://resources/textures/snail_shell.png" id="8_0v3d4"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_kpiuy"]
|
||||
resource_name = "GoingToSleep"
|
||||
length = 1.5
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -72,10 +72,189 @@ tracks/4/keys = {
|
|||
"update": 0,
|
||||
"values": [Vector2(1.09451, 0.620219), Vector2(0, 0), Vector2(0, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Sprite/ShadowShell:scale")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.3, 1, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1.002, 0.3), Vector2(0.8, 0.3), Vector2(1.002, 0.3), Vector2(1.002, 0.3)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Sprite/ShadowShell:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_w6m82"]
|
||||
resource_name = "Move"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite/SnailBody:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(1.08, 1), Vector2(1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite/SnailShell:rotation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, -0.0523599, 0.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite/SnailBody:visible")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, true]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite/ShadowEating:scale")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(1.08, 1), Vector2(1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_oua3i"]
|
||||
resource_name = "Sleep"
|
||||
length = 4.0
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite/SnailBody:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, false]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite/SnailShell:scale")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4),
|
||||
"transitions": PackedFloat32Array(-2, -2, -2, -2, -2, -2, -2, -2, -2),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(1.01, 1.01), Vector2(1, 1), Vector2(1.01, 1.01), Vector2(1, 1), Vector2(1.01, 1.01), Vector2(1, 1), Vector2(1.01, 1.01), Vector2(1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Z:visible")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Z:modulate")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2, 0.3, 1.2, 1.3, 4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Z2:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Z2:modulate")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4, 0.5, 1.4, 1.5, 4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0.885714), Color(1, 1, 1, 0), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Z3:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Z3:modulate")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 0.6, 0.7, 1.7, 1.8, 4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.992157), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6ntaf"]
|
||||
_data = {
|
||||
"GoingToSleep": SubResource("Animation_kpiuy")
|
||||
"GoingToSleep": SubResource("Animation_kpiuy"),
|
||||
"Move": SubResource("Animation_w6m82"),
|
||||
"Sleep": SubResource("Animation_oua3i")
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_2whjo"]
|
||||
|
|
@ -91,7 +270,29 @@ script = ExtResource("1_lkvd1")
|
|||
libraries = {
|
||||
"": SubResource("AnimationLibrary_6ntaf")
|
||||
}
|
||||
autoplay = "GoingToSleep"
|
||||
autoplay = "Move"
|
||||
|
||||
[node name="Z" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
position = Vector2(-17, -22)
|
||||
scale = Vector2(0.1, 0.1)
|
||||
texture = ExtResource("5_owmpd")
|
||||
|
||||
[node name="Z2" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.958931)
|
||||
position = Vector2(-12, -38)
|
||||
rotation = 0.464258
|
||||
scale = Vector2(0.11, 0.11)
|
||||
texture = ExtResource("5_owmpd")
|
||||
|
||||
[node name="Z3" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.993125)
|
||||
position = Vector2(-30, -47)
|
||||
rotation = -0.205949
|
||||
scale = Vector2(0.13, 0.13)
|
||||
texture = ExtResource("5_owmpd")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
position = Vector2(-6, 0)
|
||||
|
|
@ -102,16 +303,22 @@ position = Vector2(60, 30)
|
|||
scale = Vector2(1e-05, 1e-05)
|
||||
texture = ExtResource("7_8spp3")
|
||||
|
||||
[node name="ShadowShell" type="Sprite2D" parent="Sprite"]
|
||||
self_modulate = Color(0, 0, 0, 0.0784314)
|
||||
position = Vector2(10, 130)
|
||||
rotation = -0.00998773
|
||||
scale = Vector2(1.002, 0.3)
|
||||
texture = ExtResource("8_0v3d4")
|
||||
|
||||
[node name="SnailShell" type="Sprite2D" parent="Sprite"]
|
||||
position = Vector2(0, -168.582)
|
||||
rotation = -4.71395
|
||||
scale = Vector2(1, 1)
|
||||
rotation = -6.28319
|
||||
scale = Vector2(1.00249, 1.00249)
|
||||
texture = ExtResource("8_0v3d4")
|
||||
|
||||
[node name="ShadowEating" type="Sprite2D" parent="Sprite"]
|
||||
self_modulate = Color(0, 0, 0, 0.0784314)
|
||||
show_behind_parent = true
|
||||
position = Vector2(121, 68.925)
|
||||
position = Vector2(60, 20)
|
||||
scale = Vector2(1e-05, 1e-05)
|
||||
texture = ExtResource("2_yor00")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue