El sistema de movimiento de asteroides gestiona el desplazamiento vertical de todos los asteroides en pantalla y elimina aquellos que ya han salido de los límites visibles para optimizar el rendimiento.
codeImplementación
func _mover_asteroides(delta: float):
# Los asteroides caen hacia abajo a velocidad constante
for i in asteroides.size():
asteroides[i].position.y += vel_asteroides * delta
# Eliminamos los que ya salieron de la pantalla
asteroides = asteroides.filter(
func(o): return o.position.y < pantalla.y
)
# Los asteroides caen hacia abajo a velocidad constante
for i in asteroides.size():
asteroides[i].position.y += vel_asteroides * delta
# Eliminamos los que ya salieron de la pantalla
asteroides = asteroides.filter(
func(o): return o.position.y < pantalla.y
)
arrow_downwardProceso de movimiento
loop
Iteración
Recorre todos los asteroides en la lista
speed
Desplazamiento
Actualiza posición Y con velocidad × tiempo
filter_list
Filtrado
Elimina asteroides fuera de pantalla
timer
Uso de delta para movimiento independiente de la tasa de frames
delete_sweep
La función filter() crea una nueva lista solo con los asteroides visibles
tuneParámetros de configuración
fast_forward
vel_asteroides = 250.0 - Velocidad vertical inicial en píxeles/segundo
height
Un asteroide se elimina cuando su posición Y supera pantalla.y
functions
Cálculo de desplazamiento: position.y += vel_asteroides * delta
auto_fix_high
La velocidad de los asteroides aumenta progresivamente durante el juego
memory
El filtrado de asteroides fuera de pantalla optimiza el uso de memoria