diff --git a/items/fromage_normal.tscn b/items/fromage_normal.tscn index 247921a..4593f3f 100644 --- a/items/fromage_normal.tscn +++ b/items/fromage_normal.tscn @@ -8,7 +8,7 @@ atlas = ExtResource("1_rx0yq") region = Rect2(16, 0, 16, 16) [sub_resource type="CircleShape2D" id="CircleShape2D_xry4i"] -radius = 6.0 +radius = 4.0 [sub_resource type="Animation" id="Animation_r46qo"] resource_name = "RESET" @@ -65,6 +65,18 @@ tracks/0/keys = { "update": 0, "values": [Vector2(0, 0), Vector2(0, -2), Vector2(0, 0)] } +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.1, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1)] +} [sub_resource type="Animation" id="Animation_jemsl"] resource_name = "picked" @@ -117,6 +129,7 @@ collision_layer = 64 script = ExtResource("1_2l3x1") [node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(0.7, 0.7) texture = SubResource("AtlasTexture_7rdb1") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] @@ -128,4 +141,8 @@ libraries = { "": SubResource("AnimationLibrary_4iwa0") } +[node name="Timer" type="Timer" parent="."] + [connection signal="body_entered" from="." to="." method="_on_body_entered"] +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] +[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"] diff --git a/items/normal_cheese.gd b/items/normal_cheese.gd index 9666fb0..517d637 100644 --- a/items/normal_cheese.gd +++ b/items/normal_cheese.gd @@ -2,7 +2,24 @@ class_name NormalCheese extends Area2D @onready var animation_player := $AnimationPlayer as AnimationPlayer +@onready var timer := $Timer as Timer +@export var CHEESE_RESPAWN_TIME : int = 1 +var picked :bool = false func _on_body_entered(body: Node2D) -> void: - animation_player.play(&"picked") - (body as Princess).cheese_collected.emit() + if not picked: + animation_player.play(&"picked") + (body as Princess).cheese_collected.emit() + picked = true + # Le fromage peut être à utilisation unique + if CHEESE_RESPAWN_TIME > 0: + timer.start(CHEESE_RESPAWN_TIME) + +func _on_timer_timeout() -> void: + timer.stop() + animation_player.play(&"RESET") + +func _on_animation_player_animation_finished(anim_name: StringName) -> void: + if anim_name == "RESET": + animation_player.play(&"cheese") + picked = false diff --git a/levels/level.tscn b/levels/level.tscn index 822a8d9..d7db0ab 100644 --- a/levels/level.tscn +++ b/levels/level.tscn @@ -1991,4 +1991,8 @@ metadata/_edit_group_ = true [node name="Node" type="Node" parent="."] [node name="Fromage normal" parent="Node" instance=ExtResource("3_3jwuu")] -position = Vector2(-101, -33) +position = Vector2(-80, -83) + +[node name="Fromage normal2" parent="Node" instance=ExtResource("3_3jwuu")] +position = Vector2(50, 142) +CHEESE_RESPAWN_TIME = 10