Para praticar loops, você criará uma lâmpada que brilha gradualmente mais brilhante e depois desvanecerá ao longo do tempo. Este script pode então ser aplicado a quaisquer outras luzes 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 um script anexados.
Para tornar mais fácil ver a luz, altere o mundo do jogo para noite . No Explorer > Lighting > altere ClockTime para 0.
Crie uma nova peça ou modelo chamado Lamp.
Selecione Lamp, e adicione um iluminação , como um PointLight ou SpotLight. Você vai trabalhar com a propriedade de brilho da luz para criar uma lâmpada brilhante.
In Lamp, adicione um novo script chamado GlowScript. Nesse script, crie variáveis para armazenar a parte da lâmpada e a luz de ponto.
local lightPart = script.Parentlocal light = lightPart.SpotLightEm seguida, crie uma variável para armazenar quanto a brilhanceza da luz mudará a cada vez que o loop for executado. Em seguida, adicione outra variável para quantos segundos os loops vão esperar antes de serem executados novamente.
-- Quanto a brilhência da luz mudará a cada vezlocal brightnessChange = 1-- Quão frequentemente em segundos a luz muda de brilholocal timeChange = 1
Fazendo a Lampada Brilhar
A lâmpada usará duas para loops , uma que conta até fazer a lâmpada mais brilhante e uma que conta para dim-in. Cada for loop terá uma variável de controle chamada currentBrightness. Desta maneira, à medida que a variável de controle da lâmpada sobe e cai, a亮度 da luz.
Primeiro Loop (Aumento de Luz)
Lembre-se, um for loop começa com a palavra-chave for seguida por uma variável de controle. Este script definirá o valor de brilho da luz para o valor na variável de controle.
Código para loop usando os seguintes valores. Lembre-se de separar a variável de controle e os valores de fim com um ponto-vírgula.
- Variável de controle : currentBrightness
- Valor de início : 0
- Valor de fim da vida útil : 5
- Valor de Incremento : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendNo alcance do for loop, configure a propriedade de brilho da luz para o valor na variável de controle ao digitar light.Brightness = currentBrightness. Agora, quando o loop é executado, a luz fica mais brilhante.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendEntão a mudança não acontece 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 o jogo para ver a luz aumentar de brilho a cada segundo.
Se você não puder ver a mudança de brilho ao longo do tempo na primeira etapa:
- Certifique-se de que light.Brightness = currentBrightness esteja entre o do e o fim do seu for loop.
- Verifique se timeChange está no mínimo 1 ou mais. Números menores farão com que a mudança de brilho seja mais rápida, mas será mais difícil de ver ao longo do tempo.
- Certifique-se de que a primeira linha do seu for loop tem dois pisos com total de ponto de vírgula separando a variável de controle, o valor final e o valor de incremento.
Segunda Loop (Diminuição de Luz)
Para apagar a luz, use um segundo para o loop. Os valores deste loop serão revertidos para que a luz comece brilhante e a cada segundo, fique mais escuro.
Código um segundo para o loop que diminui a brilhência ao longo do tempo. A solução está na caixa de código abaixo. Use os seguintes valores:
- Variável de Controle - currentBrightness definido para 5, o fim do último loop.
- Fim - 0, desligando a luz.
- Incremento - subtrair brightnessChange.
-- Segunda lâmpada de dimfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExecute seu jogo; você deve ver a luz brilhante e depois apagar.
Fazendo a Cópia da Luz
Agora, a luz só pode ser ligada e desligada uma vez. Para fazer a lâmpada desligadocontinuamente, os forços serão colocados dentro de um repetidor enquanto a lâmpada estiver em um loop.
Sob os for loops, crie um novo while loop.
while true doendColoque ambos para loops dentro de um loop de while. Indente os for loops para torná-los mais fáceis de dizer ao lado do while loop.
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 escuro continuamente.
Script de Luz Finalizado
Uma versão final do script pode ser referenciado abaixo.
-- Armazena a luz anexada a esta lâmpadalightPart = script.Parentlight = lightPart.SpotLight-- Quanto a brilhência da luz mudará a cada vezlocal brightnessChange = 1-- Quão frequentemente em segundos a luz muda de brilholocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Segunda vez em loop para desligar a luzfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Visão Geral
Para criar efeitos complexos em um projeto, scripts podem usar vários loops, e até mesmo combinações de diferentes tipos de loops. Para codificar uma luz brilhante, dois loops são aninhados em um while loop. À medida que os coders adicionam mais loops, certifique-se de verificar a indentação para que o código possa ser fácil de ler.