Luces brillantes con bucles for

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Para practicar los bucles for, crearás una lámpara que brilla gradualmente más y luego se atenúa con el tiempo. Este script puede aplicarse a otras luces en un proyecto, ya sea una farola o un cristal brillante.

Configura la parte y el script

La lámpara será una parte con una luz y un script adjuntos.

  1. Para facilitar la visualización de la luz, cambia el mundo 3D a noche. En el ExplorerLighting, cambia ClockTime a 0.

    imagen
  2. Crea una nueva parte o modelo llamado Lámpara.

  3. Selecciona Lámpara y añade una luz, como una PointLight o SpotLight. Trabajarás con la propiedad de brillo de la luz para crear una lámpara brillante.

  4. En Lámpara, añade un nuevo script llamado GlowScript. En ese script, crea variables para almacenar la parte de la lámpara y la luz puntual.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. A continuación, crea una variable para almacenar cuánto cambiará el brillo de la luz cada vez que se ejecute el bucle. Luego, añade otra variable para cuántos segundos esperará el bucle antes de ejecutarse nuevamente.


    -- Cuánto cambiará el brillo de la luz cada vez
    local brightnessChange = 1
    -- Con qué frecuencia en segundos cambiará la luz de brillo
    local timeChange = 1

Haz que la lámpara brille

La lámpara usará dos bucles for, uno que cuenta hacia arriba para hacer que la lámpara brille más, y otro que cuenta hacia abajo para atenuarla. Cada bucle for tendrá una variable de control llamada currentBrightness. Así, a medida que la variable de control del bucle for sube y baja, también lo hará el brillo de la luz.

Primer bucle (aumento de luz)

Recuerda que un bucle for comienza con la palabra clave for seguida de una variable de control. Este script establecerá el valor de brillo de la luz al valor de la variable de control.

  1. Codifica el bucle for usando los siguientes valores. Recuerda separar la variable de control y los valores finales con una coma.

    • Variable de control: currentBrightness
    • Valor inicial: 0
    • Valor final: 5
    • Valor de incremento: brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. En el alcance del bucle for, establece la propiedad de brillo de la luz al valor de la variable de control escribiendo light.Brightness = currentBrightness. Ahora, cuando se ejecute el bucle, la luz se volverá más brillante.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Para que el cambio no ocurra todo de una vez, añade una función wait utilizando el valor en timeChange.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Ejecuta la experiencia para ver cómo la luz aumenta su brillo cada segundo.

Si no puedes ver el cambio de brillo con el tiempo en el primer bucle:

  • Asegúrate de que light.Brightness = currentBrightness esté entre el do y el end de tu bucle for.
  • Verifica que timeChange sea al menos 1 o más. Números más pequeños harán que el brillo cambie más rápido, pero serán más difíciles de ver con el tiempo.
  • Asegúrate de que la primera línea de tu bucle for tenga dos comas en total separando la variable de control, el valor final y el valor de incremento.

Segundo bucle (disminución de luz)

Para atenuar la luz, utiliza un segundo bucle for. Los valores de este bucle estarán invertidos para que la luz comience brillante y cada segundo se oscurezca.

  1. Codifica un segundo bucle for que disminuya el brillo con el tiempo. La solución está en el cuadro de código a continuación. Usa los siguientes valores:

    • Variable de control - currentBrightness configurada a 5, el final del último bucle.
    • Fin - 0, apagando la luz.
    • Incremento - resta brightnessChange.

    -- Segundo bucle atenúa la lámpara
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Ejecuta tu experiencia; deberías ver cómo la luz brilla y luego se atenúa.

Haz que la luz se repita

Ahora mismo, la luz solo se enciende y apaga una vez. Para hacer que la lámpara brille continuamente, los bucles for se colocarán dentro de un bucle while que se repite.

  1. Bajo los bucles for, crea un nuevo bucle while.


    while true do
    end
  2. Coloca ambos bucles for dentro de un bucle while. Sangra los bucles for para hacerlos más fáciles de diferenciar del bucle while.


    while true do
    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    end
  3. Ejecuta la experiencia para ver cómo la luz se vuelve brillante y se atenúa continuamente.

Script de luz terminado

Una versión terminada del script se puede consultar a continuación.


-- Almacena la luz adjunta a esta lámpara
lightPart = script.Parent
light = lightPart.SpotLight
-- Cuánto cambiará el brillo de la luz cada vez
local brightnessChange = 1
-- Con qué frecuencia en segundos cambiará la luz de brillo
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Segundo bucle para apagar la luz
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Resumen

Para crear efectos complejos en un proyecto, los scripts pueden utilizar múltiples bucles e incluso combinaciones de diferentes tipos de bucles. Para codificar una luz brillante, dos bucles están anidados dentro de un bucle while. A medida que los programadores añaden más bucles, asegúrate de comprobar la sangría para que el código sea fácil de leer.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.