Do you even go into the Destroy()
method? Can you set a breakpoint there and see if the code goes into the get_parent().remove_child(self)
section?
I have found the error
the node, which is the code of the card atached is a staticbody 2d that is a child from a node 2d which is the son of the node which creates the cards
func Destroy():
# Emite una señal antes de destruir para actualizar el conteo de cartas
emit_signal("carta_destruida")
var padre = get_parent()
# Verifica si el nodo está en un árbol de nodos
if get_parent() != null:
# Si está en un árbol, lo elimina
padre.get_parent().remove_child(padre)
padre.queue_free()
else:
# Si no está en un árbol, imprime un mensaje
print("La carta no está en ningún árbol de nodos.")
here I try to delete de parent node of the staticbody2d node but it doesn’t works
Can you post a screenshot of the SceneTree? I have no idea how your card object is structured and what the hierarchy is.
Also I would do it like this:
var padre = get_parent()
# Verifica si el nodo está en un árbol de nodos
if padre.get_parent() != null: # We want to check the parent of padre
# Si está en un árbol, lo elimina
padre.get_parent().remove_child(padre)
padre.queue_free()
else:
# Si no está en un árbol, imprime un mensaje
print("La carta no está en ningún árbol de nodos.")
So right now I understand that the card is not actually the card but the StaticBody2d which is a child node of the card.
1 Like
Node (the parent of padre)
—node(padre)
-------staticbody2d(card)