From 02dc1551839c606a4b9ae8592a6405148eeaff8f Mon Sep 17 00:00:00 2001 From: minimata Date: Sat, 31 Jan 2026 13:46:45 +0100 Subject: [PATCH] Animation and camera tweaking --- scenes/camera/camera_controller.gd | 4 +- scenes/list/list.tscn | 10 ++ scenes/main/main.gd | 12 ++- scenes/main/main.tscn | 152 +++++++++++++++++++++++++---- 4 files changed, 154 insertions(+), 24 deletions(-) create mode 100644 scenes/list/list.tscn diff --git a/scenes/camera/camera_controller.gd b/scenes/camera/camera_controller.gd index d9e7285..b5d3caf 100644 --- a/scenes/camera/camera_controller.gd +++ b/scenes/camera/camera_controller.gd @@ -21,9 +21,9 @@ func _process(delta: float) -> void: if position.x > limit_right_at_center: position.x = limit_right_at_center - if should_move_right: + if should_move_right and position.x < limit_right_at_center: position.x += pan_speed - if should_move_left and position.x > 0: + if should_move_left and position.x > limit_left_at_center: position.x -= pan_speed diff --git a/scenes/list/list.tscn b/scenes/list/list.tscn new file mode 100644 index 0000000..46f65d8 --- /dev/null +++ b/scenes/list/list.tscn @@ -0,0 +1,10 @@ +[gd_scene format=3 uid="uid://0rq12xgcteak"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_trceg"] +radius = 198.0 +height = 1044.0 + +[node name="List" type="Area2D" unique_id=36531496] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=579673425] +shape = SubResource("CapsuleShape2D_trceg") diff --git a/scenes/main/main.gd b/scenes/main/main.gd index 5b1786f..0d84850 100644 --- a/scenes/main/main.gd +++ b/scenes/main/main.gd @@ -22,8 +22,16 @@ func play_list_down_sfx() -> void: func _on_guest_list_mouse_entered() -> void: - animation_player.play("guest_list_up") + animation_player.queue("guest_list_up") func _on_guest_list_mouse_exited() -> void: - animation_player.play("guest_list_down") + animation_player.play_backwards("guest_list_up") + + +func _on_mask_list_mouse_entered() -> void: + animation_player.queue("mask_list_up") + + +func _on_mask_list_mouse_exited() -> void: + animation_player.play_backwards("mask_list_up") diff --git a/scenes/main/main.tscn b/scenes/main/main.tscn index c71efc3..d6425be 100644 --- a/scenes/main/main.tscn +++ b/scenes/main/main.tscn @@ -26,6 +26,7 @@ [ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="13_6llfj"] [ext_resource type="AudioStream" uid="uid://b7pe3ogc8rbvx" path="res://assets/audio/kenney_casino-audio/Audio/card-shove-4.ogg" id="13_i7in8"] [ext_resource type="Script" uid="uid://cgctwciolfqe5" path="res://scenes/camera/camera_controller.gd" id="14_0bhws"] +[ext_resource type="PackedScene" uid="uid://0rq12xgcteak" path="res://scenes/list/list.tscn" id="25_6llfj"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gkmcc"] random_pitch = 1.122462 @@ -65,10 +66,6 @@ Vector2i(-1, -1): { } } -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_trceg"] -radius = 198.0 -height = 1044.0 - [sub_resource type="RectangleShape2D" id="RectangleShape2D_ya4ey"] size = Vector2(512, 1080) @@ -98,10 +95,34 @@ tracks/1/keys = { "update": 0, "values": [-0.16732943] } +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MaskList:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(409, 523)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MaskList:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.1675516] +} [sub_resource type="Animation" id="Animation_hxu8e"] resource_name = "guest_list_down" -length = 0.5 +length = 0.2 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -109,7 +130,7 @@ tracks/0/path = NodePath("GuestList:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.5), +"times": PackedFloat32Array(0, 0.19999999), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(-388, 176), Vector2(-409, 523)] @@ -121,7 +142,7 @@ tracks/1/path = NodePath("GuestList:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0, 0.5), +"times": PackedFloat32Array(0, 0.19999999), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, -0.16732943] @@ -143,7 +164,7 @@ tracks/2/keys = { [sub_resource type="Animation" id="Animation_raeie"] resource_name = "guest_list_up" -length = 0.5 +length = 0.2 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -151,7 +172,7 @@ tracks/0/path = NodePath("GuestList:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.5), +"times": PackedFloat32Array(0, 0.19999999), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(-409, 523), Vector2(-388, 176)] @@ -163,7 +184,7 @@ tracks/1/path = NodePath("GuestList:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0, 0.5), +"times": PackedFloat32Array(0, 0.19999999), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [-0.16732943, 0.0] @@ -183,11 +204,97 @@ tracks/2/keys = { }] } +[sub_resource type="Animation" id="Animation_62atk"] +resource_name = "mask_list_down" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MaskList:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.19999999), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(388, 176), Vector2(409, 523)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MaskList:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.19999999), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.1675516] +} +tracks/2/type = "method" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"play_list_down_sfx" +}] +} + +[sub_resource type="Animation" id="Animation_0bhws"] +resource_name = "mask_list_up" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MaskList:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.19999999), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(409, 523), Vector2(388, 176)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MaskList:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.19999999), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.1675516, 0.0] +} +tracks/2/type = "method" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"play_list_up_sfx" +}] +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_hxu8e"] _data = { &"RESET": SubResource("Animation_7smn1"), &"guest_list_down": SubResource("Animation_hxu8e"), -&"guest_list_up": SubResource("Animation_raeie") +&"guest_list_up": SubResource("Animation_raeie"), +&"mask_list_down": SubResource("Animation_62atk"), +&"mask_list_up": SubResource("Animation_0bhws") } [node name="Main" type="Node2D" unique_id=875553242] @@ -206,24 +313,27 @@ script = ExtResource("3_hxu8e") character_roster = Array[ExtResource("4_nvumn")]([ExtResource("5_ou6is"), ExtResource("6_necax"), ExtResource("7_r4lks"), ExtResource("8_pg34l")]) mask_roster = Array[ExtResource("9_m4h2d")]([ExtResource("10_p8abn"), ExtResource("11_s17dp"), ExtResource("12_37hlw")]) -[node name="GuestList" type="Node2D" parent="." unique_id=1314693850] +[node name="MaskList" parent="." unique_id=437192154 instance=ExtResource("25_6llfj")] +position = Vector2(409, 523) +rotation = 0.1675516 + +[node name="Sprite2D" type="Sprite2D" parent="MaskList" unique_id=1216540471] +texture = ExtResource("13_6llfj") + +[node name="GuestList" parent="." unique_id=2089675317 instance=ExtResource("25_6llfj")] position = Vector2(-409, 523) rotation = -0.16732943 -[node name="Sprite2D" type="Sprite2D" parent="GuestList" unique_id=508689157] +[node name="Sprite2D" type="Sprite2D" parent="GuestList" unique_id=2026369586] texture = ExtResource("13_6llfj") -[node name="Area2D" type="Area2D" parent="GuestList" unique_id=416235822] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="GuestList/Area2D" unique_id=845691842] -shape = SubResource("CapsuleShape2D_trceg") - [node name="Camera2D" type="Camera2D" parent="." unique_id=1166192115] limit_left = -960 limit_top = -540 limit_right = 4096 limit_bottom = 540 position_smoothing_enabled = true +position_smoothing_speed = 10.0 script = ExtResource("14_0bhws") pan_speed = 10.0 @@ -242,8 +352,10 @@ shape = SubResource("RectangleShape2D_ya4ey") [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1813843404] libraries/ = SubResource("AnimationLibrary_hxu8e") -[connection signal="mouse_entered" from="GuestList/Area2D" to="." method="_on_guest_list_mouse_entered"] -[connection signal="mouse_exited" from="GuestList/Area2D" to="." method="_on_guest_list_mouse_exited"] +[connection signal="mouse_entered" from="MaskList" to="." method="_on_mask_list_mouse_entered"] +[connection signal="mouse_exited" from="MaskList" to="." method="_on_mask_list_mouse_exited"] +[connection signal="mouse_entered" from="GuestList" to="." method="_on_guest_list_mouse_entered"] +[connection signal="mouse_exited" from="GuestList" to="." method="_on_guest_list_mouse_exited"] [connection signal="mouse_entered" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_entered"] [connection signal="mouse_exited" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_exited"] [connection signal="mouse_entered" from="Camera2D/PanLeft" to="Camera2D" method="_on_pan_left_mouse_entered"]