Luces brillantes con bucles

*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, crearás una lámpara que gradualmente brillará más y luego se apagará con el tiempo. Este script se puede aplicar a cualquier otra luz en un proyecto, ya sea una luz de calle o un cristal brillante.

Configurando la Parte y el Script

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

  1. Para que sea más fácil ver la luz, cambia el mundo del juego a hora de la noche . En el Explorador > Iluminación > cambia ClockTime a 0.

    image
  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 del punto.


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


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

Haciendo que la lámpara brille

La lámpara usará dos para los bucles , uno que cuenta para hacer que la lámpara sea más brillante, y uno que cuenta hacia abajo para apagarla. Cada bucle tendrá una variable de control llamada currentBrightness. De esa manera, a medida que la variable de control del bucle sube y baja, también lo hará el brillo de la luz.

Primer bucle (incremento de luz)

Recuerda, un bucle de for comienza con la palabra clave for seguido de una variable de control. Este script establecerá el valor de brillo de la luz al valor en 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 ámbito del bucle for, configure la propiedad de brillo de la luz al valor de la variable de control escribiendo light.Brightness = currentBrightness. Ahora, cuando el bucle se ejecute, la luz se volverá más brillante.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Para que el cambio no suceda todo a la vez, agregue una función de espera usando el valor de timeChange .


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Ejecutar el juego para ver el aumento de brillo de la luz 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 hacer y el final de tu bucle for.
  • Comprueba que timeChange sea al menos 1 o superior. Los números más pequeños harán que el brillo cambie más rápido, pero será más difícil de ver con el tiempo.
  • Asegúrate de que la primera línea de tu bucle for tenga dos comas totales que separen la variable de control, el valor final y el valor de incremento.

Segundo bucle (decrecimiento de luz)

Para atenuar la luz, usa un segundo para el bucle. Los valores de este bucle se invertirán para que la luz comience a brillar y cada segundo, se vuelva más tenue.

  1. Codifica un segundo para el bucle que disminuye 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 establecido a 5, el final del último bucle.
    • Fin - 0, apagando la luz.
    • Incremento - restar brightnessChange .

    -- Lámpara tenue de segundo bucle
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Ejecuta tu juego; deberías ver que la luz se ilumina y luego se oscurece.

Haciendo que la luz se repita

En este momento, la luz solo se enciende y apaga una vez. Para que la lámpara brille continuamente encendida y desactivado, los bucles se colocarán dentro de un bucle mientras se repite.

  1. Debajo de los bucles for, crea un nuevo bucle while.


    while true do
    end
  2. Coloca ambos bucles dentro de un bucle temporal. Indica los bucles para que sean más fáciles de distinguir del bucle temporal.


    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. Ejecutar el juego para ver la luz se vuelve brillante y tenue continuamente.

Script de Luz Terminado

Se puede hacer referencia a una versión terminada del guión a continuación.


-- Almacena la luz conectada 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 la luz cambiará 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 usar múltiples bucles e incluso combinaciones de diferentes tipos de bucles. Para codificar una luz brillante, dos bucles se anidan dentro de un bucle temporal. A medida que los codificadores añaden más bucles, asegúrese de verificar la indentación para que el código sea fácil de leído.