✨ Créer un effet visuel avancé de ramassage (PickupEffect)
On va créer une scène autonome et réutilisable qui simule un objet qui flotte et disparaît quand on le récupère.
🎯 Objectif
- Créer une animation de “pickup”
- Pouvoir réutiliser cette scène pour tous les loots
- Ajouter son, scale, transparence et mouvement
🧱 Structure de la scène PickupEffect.tscn
PickupEffect (Node2D)
├── Sprite2D
├── AudioStreamPlayer2D
├── Tween
📜 Script du PickupEffect
extends Node2D
@onready var sprite = $Sprite2D
@onready var tween = $Tween
@onready var audio = $AudioStreamPlayer2D
func _ready():
audio.play()
tween.tween_property(sprite, "position", sprite.position + Vector2(0, -24), 0.3)
tween.tween_property(sprite, "scale", Vector2(1.2, 1.2), 0.2)
tween.tween_property(sprite, "modulate:a", 0.0, 0.4)
await audio.finished
queue_free()
🚀 Utilisation dans d’autres scènes
Depuis un coffre ou une pomme, instancie le PickupEffect
à la position voulue :
var effect = preload("res://effects/PickupEffect.tscn").instantiate()
effect.position = spawn_point.global_position
get_tree().current_scene.add_child(effect)
💡 Bonus
- Tu peux remplacer le sprite au moment de l’instanciation
- Tu peux même faire voler l’objet vers l’inventaire (avancé + Tween vers HUD)
👩💻 Par : Lysdora
🎮 Projet : mon-rpg-zelda