extends Area3D
@export var velocidad_subida: float = 3.3
@export var velocidad_bajada: float = 3.3 # Cambié el nombre para mayor claridad
@export var altura_maxima: float = 5.0 # Altura máxima que subirá el objeto
@export var altura_inicial: float = 0.0 # Altura inicial del objeto
var objeto: Node3D # Variable para almacenar el nodo CSGBox3D7
var subiendo: bool = false
var bajando: bool = false
var altura_actual: float = 0.0
func _ready():
objeto = $CSGBox3D7 # Asignamos el nodo a la variable
altura_actual = objeto.position.y # Obtiene la altura inicial del objeto
altura_inicial = altura_actual # guarda la altura inicial
func _physics_process(delta):
if objeto: # Verifica si el objeto existe
if subiendo:
altura_actual += velocidad_subida * delta
altura_actual = min(altura_actual, altura_inicial + altura_maxima) # Limita la altura máxima
objeto.position.y = altura_actual
if altura_actual >= altura_inicial + altura_maxima:
subiendo = false # Detiene la subida al alcanzar la altura máxima
elif bajando:
altura_actual -= velocidad_bajada * delta
altura_actual = max(altura_actual, altura_inicial) # Limita la altura mínima
objeto.position.y = altura_actual
if altura_actual <= altura_inicial:
bajando = false # Detiene la bajada al alcanzar la altura inicial
func _on_area_entered(area: Area3D) -> void:
subiendo = true
bajando = false
func _on_area_exited(area: Area3D) -> void:
subiendo = false
bajando = true