Failure at checking the array of child nodes of an object

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)