Luces brillantes con forros

*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 para ciclos, crearás una lámpara que gradualmente brilla más y luego se apaga 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 hacer que sea más fácil ver la luz, cambia el mundo del juego a noche . En el Explorador > Iluminación > cambia ClockTime a 0.

    image
  2. Crea una nueva parte o modelo nombrado Lamp.

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

  4. En Lamp, agrega un nuevo script nombrado GlowScript. En ese script, crea variables para almacenar la parte de la lámpara y la luz de punto.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. A continuación, crea una variable para almacenar la cantidad de brillo de la luz cada vez que se ejecuta el ciclo. Luego, agrega otra variable para almacenar la cantidad de segundos que esperarán los ciclos antes de ejecutarse nuevamente.


    -- Cuánto cambiará la brillantez de la luz cada vez
    local brightnessChange = 1
    -- Cuántas veces en segundos cambiará de brillo la luz
    local timeChange = 1

Haciendo que la lámpara brille

La lámpara usará dos para ciclos , uno que cuenta hasta hacer que la lámpara más brillante, y uno que cuenta para apagarla. Cada para ciclo tendrá una variable de control llamada currentBrightness. De esa manera, a medida que la variable de control de la lámpara sube y baja, así es como se ilumina la lámpara.

Primera Loop (Aumento de Luz)

Recuerda, un for loop comienza con la palabra clave for seguida por una variable de control. Este script establecerá el valor de brillo de la luz en el valor de la variable de control.

  1. Código para la repetición que usa los siguientes valores. Recuerda separar la variable de control y los valores de finalización con un coma.

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

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


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Así que el cambio no ocurre todo a la vez, añade una función de espera usando el valor en timeChange .


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Ejecuta el juego para ver el aumento de luz en el brillo cada segundo.

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

  • Asegúrese de que light.Brightness = currentBrightness esté entre el do y el fin de su for loop.
  • Asegúrese de que timeChange esté al menos 1 o superior. Los números más pequeños harán que el cambio de brillo sea más rápido, pero será más difícil de ver con el tiempo.
  • Asegúrese de que la primera línea de su for loop tenga dos comas totales separando la variable de control, el valor de finalización y el valor de incremento.

Segunda Loop (Reducción de Luz)

Para apagar la luz, usa un segundo para la repetición. Los valores de esta repetición se invertirán para que la luz comience a brillar y cada segundo, se apague.

  1. Código un segundo para la repetición que disminuye el brillo con el tiempo. La solución está en la caja de código a continuación. Usa los siguientes valores:

    • Variable de control - currentBrightness establecido a 5, el final de la última ronda.
    • Finalizar - 0, apagando la luz.
    • Incremento - restar brightnessChange .

    -- Dimmer de segundo círculo
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Corre tu juego; deberías ver la luz brillante y luego apagarse.

Haciendo que la luz se repita

En este momento, la luz solo se enciende y apaga una vez. Para hacer que la lámpara brille continuamente, los forros se colocarán dentro de un repetición mientras la lámpara desactivado.

  1. Bajo los for loops, crea un nuevo mientras lo bucles.


    while true do
    end
  2. Coloca ambos para ciclos dentro de un ciclo mientras. Ajusta los ciclos para hacerlos más fáciles de decir aparte del mientras lo.


    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. Corre el juego para ver la luz cambiar de brillo y apagarse continuamente.

Guión de luz terminado

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


-- Almacena la luz que se ha añadido a esta lámpara
lightPart = script.Parent
light = lightPart.SpotLight
-- Cuánto cambiará la brillantez de la luz cada vez
local brightnessChange = 1
-- Cuántas veces en segundos cambiará de brillo la luz
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Segunda vuelta 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, y incluso combinaciones de diferentes tipos de bucles. Para codificar una luz brillante, dos bucles están anidados dentro de un bucle de tiempo. A medida que los codificadores agregan más bucles, asegúrese de revisar laindentación para que el código sea fácil de leído.