Un timer redéclenche l'apparition du fromage au bout d'un certain temps. Il suffit de paramètrer la variable CHEESE_RESPAWN_TIME pour que ça soit customisable à l'envie.
26 lines
788 B
GDScript
26 lines
788 B
GDScript
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:
|
|
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
|