Para praticar loops for, você criará uma lâmpada que gradualmente brilha mais e depois diminui ao longo do tempo. Este script pode ser aplicado a qualquer outra luz em um projeto, seja uma luz de rua ou um cristal brilhante.
Configure a parte e o script
A lâmpada será uma parte com uma luz e um script anexados.
Para facilitar a visualização da luz, mude o mundo 3D para noite. No Explorer ⟩ Lighting, altere ClockTime para 0.

Crie uma nova parte ou modelo chamada Lâmpada.

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

Na Lâmpada, adicione um novo script chamado GlowScript. Nesse script, crie variáveis para armazenar a parte da lâmpada e a luz pontual.
local lightPart = script.Parentlocal light = lightPart.SpotLightEm seguida, crie uma variável para armazenar quanto o brilho da luz mudará cada vez que o loop for executado. Depois, adicione outra variável para quantos segundos os loops esperarão antes de executar novamente.
-- Quanto o brilho da luz mudará cada vezlocal brightnessChange = 1-- Com que frequência em segundos a luz mudará de brilholocal timeChange = 1
Faça a lâmpada brilhar
A lâmpada usará dois loops for, um que conta para cima para fazer a lâmpada brilhar mais e um que conta para baixo para diminuí-la. Cada loop for terá uma variável de controle chamada currentBrightness. Assim, à medida que a variável de controle do loop for sobe e desce, o brilho da luz também mudará.
Primeiro loop (aumento da luz)
Lembre-se, um loop for começa com a palavra-chave for seguida de uma variável de controle. Este script definirá o valor de brilho da luz para o valor na variável de controle.
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 = 1for currentBrightness = 0, 5, brightnessChange doendNo escopo do loop for, defina a propriedade de brilho da luz para o valor na variável de controle digitando light.Brightness = currentBrightness. Agora, quando o loop for executado, a luz ficará mais brilhante.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendPara 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 dolight.Brightness = currentBrightnesstask.wait(timeChange)endExecute o jogo para ver a luz aumentar de brilho a cada segundo.
Se você não conseguir ver a mudança de brilho ao longo do tempo no primeiro loop:
- Certifique-se de que light.Brightness = currentBrightness esteja entre o do e o end do seu loop for.
- Verifique se timeChange é pelo menos 1 ou mais. Números menores farão com que o brilho mude mais rápido, mas será mais difícil de ver ao longo do tempo.
- Certifique-se de que a primeira linha do seu loop for tenha duas vírgulas separando a variável de controle, o valor final e o valor de incremento.
Segundo loop (diminuição da luz)
Para diminuir a luz, use um segundo loop for. Os valores deste loop serão invertidos para que a luz comece brilhante e, a cada segundo, fique mais fraca.
Codifique um segundo loop for 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 final do último loop.
- Final - 0, desligando a luz.
- Incremento - subtrair brightnessChange.
-- Segundo loop diminui a lâmpadafor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExecute seu jogo; você deve ver a luz brilhar e depois diminuir.
Faça a luz repetir
Neste momento, a luz só acende e apaga uma vez. Para fazer a lâmpada brilhar continuamente, os loops for serão colocados dentro de um loop while repetido.
Abaixo dos loops for, crie um novo loop while.
while true doendColoque ambos os loops for dentro de um loop while. Indente os loops for para torná-los mais fáceis de distinguir do loop while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendExecute o jogo para ver a luz ficar brilhante e escurecer continuamente.
Script da luz finalizado
Uma versão final 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á 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
endResumo
Para criar efeitos complexos em um projeto, scripts podem usar múltiplos loops e até combinações de diferentes tipos de loops. Para codificar uma luz brilhante, dois loops estão aninhados dentro de um loop while. À medida que os programadores adicionam mais loops, certifique-se de verificar a indentação para que o código seja fácil de ler.