连接到信号的一个func如何引用多个相似节点? [godot]

问题描述

这是我为world节点编写的一些代码,用于更新有关收集的能力和剩余生命数量标签。游戏的工作方式是,当您与敌人碰撞并且敌人死亡时,它们会赋予您能力。我的想法是,使用信号只能让我“联系”每个功能一个节点(据我所知)。那么如何让_on_green_enemy_AbilityCollected函数与游戏中产生/存在的每个敌人相关?

extends Node2D

var lives = 3
var ability = ""

onready var livesCounter = get_node("CanvasLayer/Lives")

onready var currentAbility = get_node("CanvasLayer/CurrentAbility")

func _on_player_minuslife():
    lives -= 1

func _on_green_enemy_AbilityCollected(node):
    ability = get_node(node).get("ability")

func _process(delta):
    var livestext = "LIVES LEFT: " + String(lives)
    livesCounter.text = livestext
    var Abilitytext = "CURRENT ABILITY: " + ability
    currentAbility.text = Abilitytext

解决方法

好吧,所以我避免了此问题,而不是将代码放在敌人身上,而是使用move_and_collide返回的内容从与玩家发生冲突的节点获取能力变量的名称。