From cb0721103a6288bdcad5ff2298076937f5e7e002 Mon Sep 17 00:00:00 2001 From: Foohoo Date: Tue, 21 Oct 2025 14:40:57 +0100 Subject: [PATCH] add bounce and fade out to coin pickup --- scenes/coin.tscn | 149 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 104 insertions(+), 45 deletions(-) diff --git a/scenes/coin.tscn b/scenes/coin.tscn index e013bd7..9829807 100644 --- a/scenes/coin.tscn +++ b/scenes/coin.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://dotk5aceo1m0k"] +[gd_scene load_steps=22 format=3 uid="uid://dotk5aceo1m0k"] [ext_resource type="Script" uid="uid://dkgme2xunqgmi" path="res://scripts/coin.gd" id="1_i64fm"] [ext_resource type="Texture2D" uid="uid://be3is0ecci8ro" path="res://assets/sprites/coin.png" id="1_rwqht"] @@ -99,12 +99,12 @@ animations = [{ [sub_resource type="CircleShape2D" id="CircleShape2D_ssuvv"] radius = 5.0 -[sub_resource type="Animation" id="Animation_11l1o"] -resource_name = "pickup" +[sub_resource type="Animation" id="Animation_d14el"] +length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("AnimatedSprite2D:visible") +tracks/0/path = NodePath("CollisionShape2D:disabled") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -116,7 +116,67 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("CollisionShape2D:disabled") +tracks/1/path = NodePath("PickupSound:playing") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("CollisionShape2D:position:y") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("AnimatedSprite2D:position:y") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("AnimatedSprite2D:modulate:a") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_11l1o"] +resource_name = "pickup" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("CollisionShape2D:disabled") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("PickupSound:playing") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -125,25 +185,13 @@ tracks/1/keys = { "update": 1, "values": [true] } -tracks/2/type = "value" +tracks/2/type = "method" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("PickupSound:playing") +tracks/2/path = NodePath(".") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/3/type = "method" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath(".") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { "times": PackedFloat32Array(0.96666664), "transitions": PackedFloat32Array(1), "values": [{ @@ -151,49 +199,59 @@ tracks/3/keys = { "method": &"queue_free" }] } +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("AnimatedSprite2D:position:y") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 2), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -10, -0.096666664, 1.6666667, 0, 0), +"times": PackedFloat32Array(0, 0.58) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("AnimatedSprite2D:modulate:a") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 2), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.09833333, 0.16666666, 0, 0), +"times": PackedFloat32Array(0, 0.59) +} -[sub_resource type="Animation" id="Animation_d14el"] -length = 0.001 -tracks/0/type = "value" +[sub_resource type="Animation" id="Animation_1ikuy"] +resource_name = "idle" +loop_mode = 1 +tracks/0/type = "bezier" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("AnimatedSprite2D:visible") +tracks/0/path = NodePath("AnimatedSprite2D:position:y") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] +"handle_modes": PackedInt32Array(0, 2, 2), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -5, -0.083333336, 0.8333334, 0, 0, 0, -0.083333336, -0.8333334, 0, 0), +"times": PackedFloat32Array(0, 0.5, 1) } -tracks/1/type = "value" +tracks/1/type = "bezier" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("CollisionShape2D:disabled") +tracks/1/path = NodePath("CollisionShape2D:position:y") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("PickupSound:playing") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] +"handle_modes": PackedInt32Array(0, 2, 2), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, -5, -0.083333336, 0.8333334, 0, 0, 0, -0.083333336, -0.8333334, 0, 0), +"times": PackedFloat32Array(0, 0.5, 1) } [sub_resource type="AnimationLibrary" id="AnimationLibrary_1ikuy"] _data = { &"RESET": SubResource("Animation_d14el"), +&"idle": SubResource("Animation_1ikuy"), &"pickup": SubResource("Animation_11l1o") } @@ -216,5 +274,6 @@ bus = &"SFX" libraries = { &"": SubResource("AnimationLibrary_1ikuy") } +autoplay = "idle" [connection signal="body_entered" from="." to="." method="_on_body_entered"]