Para praticar laços para, você criará uma lâmpada que brilha gradualmente mais e depois diminui com o tempo. Este script pode ser aplicado a qualquer outra luz em um projeto, seja uma luz de rua ou um cristal brilhante.
Configurar 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, mude ClockTime para 0.

Crie uma nova parte ou modelo chamada Lâmpada.

Selecione a Lâmpada e adicione uma luz, como 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 laço for executado. Depois, adicione outra variável para quantos segundos os laços esperarão antes de serem executados 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 laços para, um que conta para cima para tornar a lâmpada mais brilhante e um que conta para baixo para diminuir. Cada laço para terá uma variável de controle chamada currentBrightness. Dessa forma, à medida que a variável de controle do laço para sobe e desce, o brilho da luz também mudará.
Primeiro laço (aumento da luz)
Lembre-se, um laço para 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 laço para 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 laço para, defina a propriedade de brilho da luz para o valor na variável de controle digitando light.Brightness = currentBrightness. Agora, quando o laço for executado, a luz ficará mais brilhante.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendPara que a mudança não ocorra tudo de uma vez, adicione uma função de espera usando o valor em timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExecute a experiência para ver a luz aumentar de brilho a cada segundo.
Se você não consegue ver a mudança de brilho ao longo do tempo no primeiro laço:
- Certifique-se de que light.Brightness = currentBrightness esteja entre o do e o end do seu laço para.
- Verifique se timeChange está pelo menos em 1 ou mais. Números menores farão o brilho mudar mais rápido, mas será mais difícil perceber ao longo do tempo.
- Certifique-se de que a primeira linha do seu laço for tenha duas vírgulas no total separando a variável de controle, o valor final e o valor de incremento.
Segundo laço (diminuir a luz)
Para diminuir a luz, use um segundo laço para. Os valores deste laço serão invertidos para que a luz comece brilhante e, a cada segundo, fique mais fraca.
Codifique um segundo laço para que diminua o brilho com o 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 laço.
- Final - 0, desligando a luz.
- Incremento - subtrair brightnessChange.
-- Segundo laço diminui lâmpadafor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExecute sua experiência; você deve ver a luz brilhar e depois apagar.
Faça a luz se repetir
Neste momento, a luz só acende e apaga uma vez. Para fazer a lâmpada brilhar continuamente, os laços para serão colocados dentro de um laço while repetido.
Abaixo dos laços para, crie um novo laço while.
while true doendColoque ambos os laços para dentro de um laço while. Indente os laços para facilitar a identificação em relação ao laço while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendExecute a experiência para ver a luz acender e apagar continuamente.
Script da luz finalizada
Uma versão final do script pode ser referenciada abaixo.
-- Armazena a luz anexada a esta lâmpadalightPart = script.Parentlight = lightPart.SpotLight-- Quanto o brilho da luz mudará cada vezlocal brightnessChange = 1-- Com que frequência em segundos a luz mudará de brilholocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Segundo laço para desligar a luzfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Resumo
Para criar efeitos complexos em um projeto, scripts podem usar vários laços e até mesmo combinações de diferentes tipos de laços. Para codificar uma luz brilhante, dois laços estão aninhados dentro de um laço while. À medida que os programadores adicionam mais laços, certifique-se de verificar a indentação para que o código seja fácil de ler.