extends Area2D signal collected(collector: Node2D) func _ready() -> void: self.body_entered.connect(_on_collected) self.area_entered.connect(_on_collected) func _on_collected(collection: Node2D) -> void: var collector := collection.owner if collector == null: return ## 如果收集者存在收集接口,那麽就把自己傳過去 if collector.has_method("collect_item"): collector.collect_item(self) collected.emit(collector) self.queue_free()