diff --git a/assets/textures/rotoboy/rotoboy_face.png b/assets/textures/rotoboy/rotoboy_face.png index 138bb55..6f49dbe 100644 Binary files a/assets/textures/rotoboy/rotoboy_face.png and b/assets/textures/rotoboy/rotoboy_face.png differ diff --git a/assets/textures/rotoboy/rotoboy_smile.png b/assets/textures/rotoboy/rotoboy_smile.png index 747ee6f..77784af 100644 Binary files a/assets/textures/rotoboy/rotoboy_smile.png and b/assets/textures/rotoboy/rotoboy_smile.png differ diff --git a/objects/rotoboy/roto_boy.gd b/objects/rotoboy/roto_boy.gd index 112af29..e48630a 100644 --- a/objects/rotoboy/roto_boy.gd +++ b/objects/rotoboy/roto_boy.gd @@ -15,9 +15,11 @@ var _player: Player = null func _physics_process(delta: float) -> void: if is_zero_approx(speed): + %Head.play("normal") collision_shape.disabled = false rotation_pivot.rotation = 0.0 else: + %Head.play("happy") collision_shape.disabled = true rotation_pivot.rotation += rotation_speed * delta if _player: diff --git a/objects/rotoboy/roto_boy.tscn b/objects/rotoboy/roto_boy.tscn index 6f79ab1..f3d00a8 100644 --- a/objects/rotoboy/roto_boy.tscn +++ b/objects/rotoboy/roto_boy.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=10 format=3 uid="uid://bwtjfpfkykfdr"] +[gd_scene load_steps=12 format=3 uid="uid://bwtjfpfkykfdr"] [ext_resource type="Script" uid="uid://bt4bdjyekgh53" path="res://scripts/ball_snake/ball_snake.gd" id="1_7ck2q"] [ext_resource type="Script" uid="uid://doitxsfhjpfh0" path="res://objects/rotoboy/roto_boy.gd" id="1_pwab3"] [ext_resource type="Texture2D" uid="uid://cvgdwf28yr7fw" path="res://assets/textures/rotoboy/rotoboy.png" id="2_3s2uc"] [ext_resource type="Texture2D" uid="uid://ckfu1u3qxssrj" path="res://assets/textures/rotoboy/rotoboy_face.png" id="3_gp51k"] +[ext_resource type="Texture2D" uid="uid://bmohkn7gmnptg" path="res://assets/textures/rotoboy/rotoboy_smile.png" id="4_qes26"] [sub_resource type="CircleShape2D" id="CircleShape2D_pwab3"] radius = 24.0 @@ -11,6 +12,40 @@ radius = 24.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_8o2cr"] size = Vector2(48, 8) +[sub_resource type="SpriteFrames" id="SpriteFrames_5ig0v"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("4_qes26") +}], +"loop": true, +"name": &"happy", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_gp51k") +}], +"loop": true, +"name": &"normal", +"speed": 5.0 +}] + +[sub_resource type="Animation" id="Animation_qes26"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:speed") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + [sub_resource type="Animation" id="Animation_pwab3"] resource_name = "on_off" length = 3.0 @@ -29,21 +64,6 @@ tracks/0/keys = { "values": [0.0, 0.0, 1.0, 1.0, 1.0] } -[sub_resource type="Animation" id="Animation_qes26"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:speed") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_5ig0v"] _data = { &"RESET": SubResource("Animation_qes26"), @@ -96,8 +116,10 @@ tail_segment = false auto_density = true pixels_per_segment = 6.0 -[node name="Head" type="Sprite2D" parent="."] -texture = ExtResource("3_gp51k") +[node name="Head" type="AnimatedSprite2D" parent="."] +unique_name_in_owner = true +sprite_frames = SubResource("SpriteFrames_5ig0v") +animation = &"happy" [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = {