Luzes Brilhantes com Loops

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

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.

  1. Para tornar mais fácil ver a luz, altere o mundo do jogo para noite . No Explorer > Lighting > altere ClockTime para 0.

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

  3. 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.

  4. 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.Parent
    local light = lightPart.SpotLight
  5. Em 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 vez
    local brightnessChange = 1
    -- Quão frequentemente em segundos a luz muda de brilho
    local 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.

  1. 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 = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. No 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 do
    light.Brightness = currentBrightness
    end
  3. Entã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 do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Execute 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.

  1. 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 dim
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Execute 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.

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


    while true do
    end
  2. Coloque 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 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. Execute 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âmpada
lightPart = script.Parent
light = lightPart.SpotLight
-- Quanto a brilhência da luz mudará a cada vez
local brightnessChange = 1
-- Quão frequentemente em segundos a luz muda de brilho
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Segunda vez em loop para desligar a luz
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

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.