Luzes Brilhantes com For Loops

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Para praticar os loops, você criará uma lâmpada que gradualmente brilha mais brilhante e depois diminui com o tempo. Este script pode então ser aplicado a qualquer outra luz em um projeto, seja uma luz de rua ou um cristal brilhante.

Configurando a peça e o script

A lâmpada será uma parte com uma luz e script anexados.

  1. Para facilitar a visualização da luz, altere o mundo do jogo para horário noturno . No Explorador > Iluminação > altere Horário para 0.

    image
  2. Crie uma nova peça ou modelo chamado Lamp.

  3. Selecione Lâmpada e adicione uma luz , como uma PointLight ou SpotLight. Você irá trabalhar com a propriedade de brilho da luz para criar uma lâmpada brilhante.

  4. Em Lamp, adicione um novo script chamado GlowScript. Nesse script, crie variáveis para armazenar a parte da lâmpada e a luz do ponto.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. Em seguida, crie uma variável para conter o quanto o brilho da luz mudará cada vez que o loop correr. Em seguida, adicione outra variável por quantos segundos os loops esperarão antes de correr novamente.


    -- Quanto o brilho da luz mudará a cada vez
    local brightnessChange = 1
    -- Com que frequência em segundos a luz mudará de brilho
    local timeChange = 1

Fazendo a lâmpada brilhar

A lâmpada usará dois para loops , um que conta para cima para tornar a lâmpada mais brilhante e outro que conta para baixo para apagá-la. Cada for loop terá uma variável de controle chamada currentBrightness. Dessa forma, à medida que a variável de controle do for loop aumenta e diminui, o brilho da luz também.

Primeiro Loop (Aumento de Luz)

Lembre-se, um loop de for começa com a palavra-chave for seguido por uma variável de controle. Este script irá definir o valor do brilho da luz para o valor na variável de controle.

  1. Codifique o loop for usando os seguintes valores. Lembre-se de separar a variável de controle e os valores finais com uma vírgula.

    • Variável de controle : currentBrightness
    • Valor inicial : 0
    • Valor final : 5
    • Valor de Incremento : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. No escopo do loop for, defina a propriedade de brilho da luz no valor da variável de controle digitando light.Brightness = currentBrightness. Agora, quando o loop correr, a luz ficará mais brilhante.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Para que a mudança não aconteça de uma só vez, adicione uma função de espera usando o valor em timeChange .


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Corra o jogo para ver o aumento do brilho da luz a cada segundo.

Se você não consegue ver a mudança de brilho ao longo do tempo no primeiro loop:

  • Certifique-se de que light.Brightness = currentBrightness esteja entre o fazer e o fim do loop for.
  • Verifique se timeChange é pelo menos 1 ou mais. Números menores farão com que o brilho mude mais rápido, mas sejam mais difíceis de ver ao longo do tempo.
  • Certifique-se de que a primeira linha do seu loop for tenha duas vírgulas totais separando a variável de controle, o valor final e o valor de incremento.

Segundo Loop (Diminuição de Luz)

Para diminuir a luz, use um segundo para o loop. Os valores deste loop serão revertidos para que a luz comece a brilhar e a cada segundo, fique mais fraca.

  1. Crie um segundo para o loop que diminui o brilho ao longo do tempo. A solução está na caixa de código abaixo. Use os seguintes valores:

    • Variável de controle - currentBrightness definida como 5, o fim do último loop.
    • Fim - 0, desligando a luz.
    • Incremento - subtraia brightnessChange .

    -- Lâmpada de dimmer de segundo loop
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Corra o seu jogo; você deve ver a luz brilhar e depois diminuir.

Fazendo a luz se repetir

No momento, a luz só liga e desliga uma vez. Para fazer com que a lâmpada brilhe desligado, os loops para serão colocados dentro de um loop de repetição.

  1. Sob os loops for, crie um novo loop while.


    while true do
    end
  2. Coloque ambos para loops dentro de um loop enquanto. Indente os loops para torná-los mais fáceis de distinguir do loop enquanto.


    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. Corra o jogo para ver a luz ficar brilhante e escura continuamente.

Script de Luz Terminado

Uma versão finalizada do script pode ser referenciada abaixo.


-- Armazena a luz anexada a esta lâmpada
lightPart = script.Parent
light = lightPart.SpotLight
-- Quanto o brilho da luz mudará a cada vez
local brightnessChange = 1
-- Com que frequência em segundos a luz mudará de brilho
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Segundo loop para desligar a luz
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Resumo

Para criar efeitos complexos em um projeto, scripts podem usar vários loops e até combinações de diferentes tipos de loops. Para codificar uma luz brilhante, dois loops são aninhados dentro de um loop temporário. Como os codificadores adicionam mais loops, certifique-se de verificar a indentação para que o código possa ser fácil de ler.