Luzes brilhantes com para loops

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

Para praticar com loops, você criará uma lâmpada que gradualmente brilha mais e depois apaga ao longo do tempo.Este script pode então ser aplicado a qualquer outra luz em um projeto, seja uma lâmpada 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.

  1. Para facilitar para ver a luz, mude o mundo do jogo para noite . No Explorer > Iluminação > mude Hora do Relógio para 0.

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

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

  4. Na 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 brilho da luz mudará cada vez que o loop for executado.Então, adicione outra variável para quantos segundos os loops vão esperar antes de executar novamente.


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

Faça a lâmpada brilhar

A lâmpada usará dois para loops , um que conta para tornar a lâmpada mais brilhante e um que conta para diminuir a intensidade.Cada variável de loop terá uma variável de controle chamada currentBrightness.Dessa forma, à medida que a variável de controle do loop for aumenta e diminui, assim diminuirá a intensidade da luz.

Primeiro ciclo (aumento de luz)

Lembre-se, um ciclo for 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. Codifique o loop for usando os seguintes valores. Lembre-se de separar a variável de controle e os valores finais com um ponto-e-vírgula.

    • Variável de controle : currentBrightness
    • Início do valor : 0
    • Valor de fim :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 para o valor na variável de controle digitando light.Brightness = currentBrightness.Agora, quando o ciclo for executado, a luz ficará mais brilhante.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Então a mudança não acontece 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. Execute o jogo para ver o aumento da luz em brilho a cada segundo.

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

  • Certifique-se de que light.Brightness = currentBrightness esteja entre o início e o fim do seu loop for.
  • Verifique se timeChange é pelo menos 1 ou superior. Números menores farão a mudança de brilho mais rápida, mas será mais difícil de ver ao longo do tempo.
  • Certifique-se de que a primeira linha do seu loop for tenha dois vírgulas totais separando a variável de controle, o valor final e o valor de incremento.

Segundo ciclo (diminuição de luz)

Para diminuir a luz, use um segundo para ciclo. Os valores desse ciclo serão invertidos para que a luz comece brilhante e cada segundo, fique mais fraca.

  1. Codifique um segundo para ciclo que diminua a 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 segundo loop de dimensão
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Execute seu jogo; você deve ver a luz clarear e depois apagar.

Faça a luz se repetir

No momento, a luz só acende e desliga uma vez.Para fazer a lâmpada brilhar continuamente on e desligado, os loops de for serão colocados dentro de um ciclo while repetitivo.

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


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


    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 acender e apagar continuamente.

Script de luz script

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 a brilho da luz vai 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 ciclo para desligar a luz
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Sumário

Para criar efeitos complexos em um projeto, scripts podem usar múltiplos loops e até mesmo combinações de diferentes tipos de loops.Para codificar uma luz brilhante, dois loops são aninhados dentro de um loop while.À medida que os codificadores adicionam mais loops, certifique-se de verificar a indenção para que o código possa ser fácil de ler.