Lo logre, cree el enemigo como una escena aparte y le inclui el codigo de set explosion, funciono muy bien
Conociendo Godot
Presentación del curso
Juega Arkanet
Tus primeros pasos con Godot
Personaje principal
Las fÃsicas y los elementos en Godot
Creando el personaje principal
Animaciones
¿Cómo es trabajar en un equipo para desarrollar videojuegos?
Creando enemigos
Creando tu primer enemigo
Movimiento dirigido al jugador
Ataques
Creando el disparo
Colisiones
Cuando el jugador recibe daño
Usando singletons
Creando PowerUp
¿Cómo enfrentar la frustración al programar?
Escenario
Creando un fondo en loop
Optimizando movimientos y memoria
Creando el HUD
TileMap
Cinemática de la meta
Diseñando nuestro primer nivel
Diseño de otros niveles
Asignando SFX y música del juego
Consejos para crear niveles y escenarios
Finalizando el proyecto
Creando pantalla principal
Exportar tu juego
Comparte tu videojuego con la comunidad
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en tÃtulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Cristian Ramanzin
Aportes 4
Preguntas 1
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?