Świecące światła z pętlami

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Aby praktykować pętle, stworzysz lampę, która stopniowo świeci jaśniej, a następnie przyciemnia się z czasem.Ten skrypt można następnie zastosować do dowolnych innych świateł w projekcie, czy to jest światło uliczne czy świecący kryształ.

Ustaw część i skrypt

Lampa będzie częścią z przymocowanym światłem i skryptem.

  1. Aby ułatwić zobaczenie światła, zmień świat gry na nocny czas . W Explorer > Oświetlenie > zmień Czas zegara na 0.

    image
  2. Utwórz nową część lub model o nazwie Lamp.

  3. Wybierz lampę i dodaj światło , takie jak punkt światła lub reflektor.Będziesz pracować z właściwością jasności światła, aby stworzyć świecącą lampę.

  4. W Lampie dodaj nowy skrypt o nazwie GlowScript. W tym skrypcie utwórz zmienne, aby przechować część lampy i punkt światła.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. Następnie utwórz zmienną, aby przechować, ile jasność światła zmieni się za każdym razem, gdy pętel będzie uruchamiany.Następnie dodaj inną zmienną, jak wiele sekund pętle będą czekać przed ponownym uruchomieniem.


    -- Jak dużo jasność światła zmieni się za każdym razem
    local brightnessChange = 1
    -- Jak często w sekundach światło zmieni jasność
    local timeChange = 1

Zrób, aby lampa świeciła

Lampa będzie używać dwóch pętli , jedną, która liczy, aby uczynić lampę jaśniejszą, i jedną, która liczy, aby ją wyłączyć.Każda pętla for będzie miała zmienną kontrolną o nazwie currentBrightness.W ten sposób, gdy zmienna kontroli pętla for wzrasta i spada, tak będzie jasność światła.

Pierwszy cykl (zwiększenie światła)

Pamiętaj, że pętla for zaczyna się od słowa kluczowego for połączonego z zmienną kontrolną.Ten skrypt ustawi wartość jasności światła na wartość w zmiennej kontrolnej.

  1. Koduj pętlę for za pomocą następujących wartości. Pamiętaj o oddzieleniu zmiennej kontrolnej i końcowych wartości za pomocą przecinka.

    • Zmienna kontroli : currentBrightness
    • Wartość początkowa : 0
    • Wartość końcowa : 5
    • Wartość wzrostu : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. W zakresie pętla for ustaw właściwość jasności światła na wartość w zmiennej kontrolnej, wpisując light.Brightness = currentBrightness.Teraz, gdy pętla zostanie uruchomiona, światło stanie się jaśniejsze.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Więc zmiana nie dzieje się naraz, dodaj funkcję oczekiwania za pomocą wartości w timeChange.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Uruchom grę, aby zobaczyć zwiększenie światła w jasności co sekundę.

Jeśli nie możesz zobaczyć zmian jasności z czasem w pierwszym cyklu:

  • Upewnij się, że light.Brightness = currentBrightness jest między początkiem a końcem pętli for.
  • Sprawdź, czy timeChange jest co najmniej 1 lub wyższy. Mniejsze liczby sprawią, że zmiana jasności będzie szybsza, ale trudniej będzie ją zauważyć z czasem.
  • Upewnij się, że pierwsza linia pętla for ma dwie łączące się spacje oddzielające zmienną kontrolną, wartość końcową i wartość wzrostu.

Drugi cykl (spadek światła)

Aby przyćmić światło, użyj drugiej pętle. Wartości tej pętle zostaną odwrócone, więc światło rozpocznie się jaśniej i co sekundę będzie coraz jaśniejsze.

  1. Zrealizuj drugi cykl pętla, który zmniejsza jasność z czasem. Rozwiązanie znajduje się w polu kodu poniżej. Użyj następujących wartości:

    • Zmienna kontroli - currentBrightness ustawiona na 5, koniec ostatniej pętle
    • Koniec - 0, wyłączenie światła.
    • Zwiększenie - odejmij brightnessChange.

    -- Druga pętla wyłącza lampę
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Uruchom swoją gra; powinieneś zobaczyć, jak światło rozjaśnia się, a następnie przyciemnia.

Powtórz światło

W tej chwili światło włącza się i wyłącza tylko raz.Aby lampka świeciła nieprzerwanie włączona i wyłączone, pętle for zostaną umieszczone wewnątrz pętli powtarzającej.

  1. Podczas pętli for utwórz nową pętlę while.


    while true do
    end
  2. Umieść oba dla pętli wewnątrz pętli while. Wytłacz pętle, aby ułatwić ich odróżnienie od pętli 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. Uruchom grę, aby zobaczyć, jak światło przełącza się pomiędzy jasnym i ciemnym nieprzerwanie.

Zakończony lekki skrypt

Zakończona wersja skryptu może być odwołana poniżej.


-- Przechowuje światło przymocowane do tej lampy
lightPart = script.Parent
light = lightPart.SpotLight
-- Jak dużo jasność światła zmieni się za każdym razem
local brightnessChange = 1
-- Jak często w sekundach światło zmieni jasność
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Drugi cykl, aby wyłączyć światło
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Podsumowanie

Aby stworzyć skomplikowane efekty w projekcie, skrypty mogą używać wielu pętli i nawet kombinacji różnych rodzajów pętli.Aby skodować świecące światło, dwa pętle są zagnieżdżone w pętli while.Gdy programiści dodają więcej pętli, upewnij się, że sprawdziłeś formatowanie, aby kod był łatwy do przeczytane.