Godot, scripts para Godot estudios y aprendizajes, Creacion de videojuegos. Creacion y publicacion de videojuegos en internet. Como hacer videojuegos. C# unity. Animaciones unity blender. Personajes videojuegos graficos dibujos. Diseño grafico. Comic. Animaciones gif. Dibujo de retratos. Realidad virtual. Cine y realidad virtual.
domingo, 14 de diciembre de 2025
GDScript instanciando por entrar en una area3d , con retraso de 6 segundos;
extends Area3D
# Carga la escena de la bola para poder instanciarla.
var bola_proyectada_scene = preload("res://EL DEL CUADRO QUE GRITA/character_body_3d_enemigo_cubo7-12-25.tscn")
# 0: Esperando colisión inicial
# 1: Colisión detectada, contando tiempo
# 2: Instanciación completada
var estado_instanciacion: int = 0
# Contador de tiempo, para acumular los segundos.
var tiempo_acumulado: float = 0.0
# Constante que define el retardo deseado: ¡AHORA 6 SEGUNDOS!
const TIEMPO_ESPERA: float = 6.0
# Esta función se llama automáticamente cuando otro Area3D entra en este Area3D.
# (Debes haber conectado la señal 'area_entered').
func _on_area_entered(area: Area3D) -> void:
# 1. Comprobar que el retardo no se haya iniciado ya.
if estado_instanciacion == 0:
print("Área tocada. Iniciando cuenta atrás de ", TIEMPO_ESPERA, " segundos para instanciar bola...")
estado_instanciacion = 1 # Cambiamos el estado para empezar a contar.
# 2. OPCIONAL: Comprobar si el Area que ha entrado es un área específica.
# if area.name != "Area_del_jugador":
# return
# Esta función se llama en cada frame del juego.
func _process(delta: float) -> void:
# Comprobar si estamos en el estado de conteo (1).
if estado_instanciacion == 1:
# Acumular el tiempo transcurrido desde el último frame.
tiempo_acumulado += delta
# Comprobar si se ha alcanzado el tiempo de espera (6.0 segundos).
if tiempo_acumulado >= TIEMPO_ESPERA:
# ¡Tiempo cumplido! Instanciar y cambiar el estado.
instanciar_bola()
estado_instanciacion = 2 # Marcamos como completado.
# Detenemos el _process, ya que la tarea ha terminado.
set_process(false)
func instanciar_bola() -> void:
print("¡6 segundos cumplidos! Instanciando bola proyectada.")
# Instancia la escena pre-cargada.
var nueva_bola = bola_proyectada_scene.instantiate()
# Asigna la posición de la nueva instancia a la del nodo actual.
nueva_bola.global_position = self.global_position
# Añade la instancia como hijo del nodo padre.
get_parent().add_child(nueva_bola)
# --- FIN DEL SCRIPT ---