Sistema de asteroides - Creación

El sistema de creación de asteroides genera nuevos obstáculos de forma periódica con posición y tamaño aleatorios. Controla el tiempo entre apariciones para regular la dificultad del juego.

codeImplementación

func _crear_asteroides(delta: float):
  # Cada "intervalo_asteroides" segundos, creamos uno nuevo
  tiempo_proximo_asteroide += delta
  if tiempo_proximo_asteroide >= intervalo_asteroides:
    tiempo_proximo_asteroide = 0.0

    # Posición X aleatoria dentro de los límites
    var x = randi_range(0, pantalla.x - TAM_ASTEROIDE)

    # Tamaño aleatorio entre la mitad y el doble del base
    var tam = randi_range(TAM_ASTEROIDE / 2.0, TAM_ASTEROIDE * 2.0)

    # Colocamos el rectángulo justo por encima de la pantalla
    var asteroide = Rect2(x, -tam, tam, tam)
    asteroides.append(asteroide)

auto_fix_highProceso de creación

timer
Control de tiempo
Acumula tiempo hasta superar el intervalo definido
shuffle
Posición aleatoria
Genera coordenada X dentro del ancho de pantalla
aspect_ratio
Tamaño variable
Calcula tamaño entre 50% y 200% del tamaño base
add_box
Añadir a lista
Incorpora el nuevo asteroide al array de asteroides

tuneParámetros de configuración

schedule
intervalo_asteroides = 0.75 - Segundos entre apariciones de asteroides
straighten
TAM_ASTEROIDE = 64 - Tamaño base en píxeles de los asteroides
height
Los asteroides se crean con y = -tam para que aparezcan desde fuera de la pantalla
casino
Uso de randi_range() para generar valores aleatorios dentro de un rango
repeat
Al crear un asteroide, se reinicia el contador tiempo_proximo_asteroide