Función colisiones_disparos_asteroides()

La función colisiones_disparos_asteroides() detecta y gestiona las colisiones entre los disparos del jugador y los asteroides, eliminando ambos elementos y reproduciendo efectos de sonido.

  • gps_fixed

    Detección de colisiones

    Comprueba intersección entre rectángulos de disparos y asteroides

  • delete_sweep

    Eliminación de elementos

    Remueve tanto el disparo como el asteroide al colisionar

  • volume_up

    Feedback audiovisual

    Reproduce sonido de destrucción y efectos visuales

lightbulb Puntos clave
check_circle
Iteración anidada para comprobar todas las combinaciones
check_circle
Eliminación segura para evitar errores de iteración
check_circle
Reproducción inmediata de efectos de sonido
Sistema de colisiones
whatshot
func colisiones_disparos_asteroides():
  # Iterar sobre todos los disparos
  for d in disparos.size() - 1:
    var disparo = disparos[d]
    var rect_disparo = Rect2(disparo.pos, disparo.tam)

    # Iterar sobre todos los asteroides
    for a in asteroides.size() - 1:
      var asteroide = asteroides[a]
      var rect_asteroide = Rect2(asteroide.pos, asteroide.tam)

      # Comprobar colisión
      if rect_disparo.intersects(rect_asteroide):
        # Eliminar disparo
        disparos.remove_at(d)

        # Eliminar asteroide
        asteroides.remove_at(a)

        # Reproducir sonido de destrucción
        reproducir("destruccion")

        # Salir del bucle para evitar errores
        break
gps_fixed
Detectar colisión
arrow_forward
delete_sweep
Eliminar elementos
arrow_forward
volume_up
Reproducir efectos
rocket