No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Colisiones

11/28
Recursos

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Lo logre, cree el enemigo como una escena aparte y le inclui el codigo de set explosion, funciono muy bien

asi queda la funcion set explosion en godot 4

func set_explosion():
	collision_mask = 0
	collision_layer = 0
	$AnimatedSprite2D.animation = "explosion"
	await $AnimatedSprite2D.animation_finished
	queue_free()

Lo que yo hice fue mover la función set_explosion a mi script de disparo, luego agregué la animación de explosión a la cadena de enemigos y listo

#Script de disparo

extends RigidBody2D

func set_explosion(enemy): #Agregué el parámetro enemy para pasarle el nodo enemigo a la función
	enemy.collision_mask = 0
	enemy.collision_layer = 0
	enemy.get_node("AnimatedSprite").animation = "explosion" #tuve que utilizar get_node porque al utilizar $AnimatedSprite no lo reconoce dentro del nodo
	yield(enemy.get_node("AnimatedSprite"), "animation_finished")
	enemy.queue_free()


func _on_Area2D_area_entered(area): 
	if area.is_in_group("enemy"):
		set_explosion(area) #Misma función pero pasando el área como parámetro
	
En Godot 4 en adelante, yield ya no existe, en su lugar está await. await es fácil de usar, solo recuerda esta formulita: ```js yield(nodo, "señal") //se convierte en await nodo.señal ```Y con eso van piola ;) Por cierto, si tienen problemas ejecutando las animaciones de los animated sprites, asegúrense de activar una cosita llamada "Reproducción Automática al Cargar" *en la animación idle de los animated sprites*. Si no lo hacen no se reproducen las animaciones ni la explosión. Revisen eso para todos los animated sprites que tengan, puede que no les funcionen bien y no sepan