Aby poćwiczyć pętle for, stworzysz lampę, która stopniowo będzie jaśniejsza, a następnie przyciemni się w czasie. Ten skrypt można następnie zastosować do innych świateł w projekcie, niezależnie od tego, czy jest to latarnia uliczna, czy świecący kryształ.
Ustaw część i skrypt
Lampa będzie częścią z dołączonym światłem i skryptem.
Aby łatwiej zobaczyć światło, zmień świat 3D na noc. W Explorer ⟩ Lighting, zmień ClockTime na 0.

Stwórz nową część lub model o nazwie Lampa.

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

W Lampie dodaj nowy skrypt o nazwie GlowScript. W tym skrypcie stwórz zmienne do przechowywania części lampy i światła punktowego.
local lightPart = script.Parentlocal light = lightPart.SpotLightNastępnie stwórz zmienną, aby przechować, o ile zmieni się jasność światła za każdym razem, gdy pętla się uruchomi. Dodaj kolejną zmienną, aby określić, ile sekund pętle będą czekać przed ponownym uruchomieniem.
-- O ile zmieni się jasność światła za każdym razemlocal brightnessChange = 1-- Jak często w sekundach światło zmieni jasnośćlocal timeChange = 1
Spraw, aby lampa świeciła
Lampa będzie używać dwóch pętli for, jedna, która liczy w górę, aby uczynić lampę jaśniejszą, a druga, która liczy w dół, aby ją przyciemnić. Każda pętla for będzie miała zmienną kontrolną o nazwie currentBrightness. W ten sposób, gdy zmienna kontrolna pętli for rośnie i maleje, tak samo będzie zmieniać się jasność światła.
Pierwsza pętla (zwiększenie światła)
Pamiętaj, że pętla for zaczyna się od słowa kluczowego for, po którym następuje zmienna kontrolna. Ten skrypt ustawi wartość jasności światła na wartość w zmiennej kontrolnej.
Zapisz pętlę for używając następujących wartości. Pamiętaj, aby oddzielić zmienną kontrolną i wartości końcowe przecinkiem.
- Zmienna kontrolna: currentBrightness
- Wartość początkowa: 0
- Wartość końcowa: 5
- Wartość inkrementacji: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendW zakresie pętli for ustaw właściwość jasności światła na wartość w zmiennej kontrolnej, wpisując light.Brightness = currentBrightness. Teraz, gdy pętla się uruchomi, światło stanie się jaśniejsze.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendAby zmiana nie następowała od razu, dodaj funkcję wait używając wartości w timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endUruchom grę, aby zobaczyć, jak światło zwiększa jasność co sekundę.
Jeśli nie możesz zobaczyć zmiany jasności w czasie w pierwszej pętli:
- Upewnij się, że light.Brightness = currentBrightness znajduje się między do a end Twojej pętli for.
- Sprawdź, czy timeChange wynosi co najmniej 1 lub więcej. Mniejsze liczby sprawią, że jasność zmieni się szybciej, ale będzie trudniej ją zobaczyć w czasie.
- Upewnij się, że pierwsza linia Twojej pętli for ma dwa przecinki oddzielające zmienną kontrolną, wartość końcową i wartość inkrementacji.
Druga pętla (zmniejszenie światła)
Aby przyciemnić światło, użyj drugiej pętli for. Wartości tej pętli będą odwrócone, aby światło zaczynało się jasno, a każdą sekundę stawało się ciemniejsze.
Zapisz drugą pętlę for, która zmniejsza jasność w czasie. Rozwiązanie znajduje się w poniższym bloku kodu. Użyj następujących wartości:
- Zmienna kontrolna - currentBrightness ustawiona na 5, koniec ostatniej pętli.
- Koniec - 0, wyłączając światło.
- Inkrement - odejmij brightnessChange.
-- Druga pętla przyciemnia lampęfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endUruchom swoją grę; powinieneś zobaczyć, jak światło jaśnieje, a następnie przyciemnia się.
Spraw, aby światło się powtarzało
Obecnie światło włącza się i wyłącza tylko raz. Aby lampa ciągle świeciła i gasła, pętle for będą umieszczone wewnątrz powtarzającej się pętli while.
Pod pętlami for stwórz nową pętlę while.
while true doendUmieść obie pętle for wewnątrz pętli while. Wciśnij pętle for, aby łatwiej je odróżnić od pętli while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendUruchom grę, aby zobaczyć, jak światło ciągle jaśnieje i przyciemnia się.
Zakończony skrypt światła
Zakończona wersja skryptu może być odniesiona poniżej.
-- Przechowuje światło dołączone do tej lampy
lightPart = script.Parent
light = lightPart.SpotLight
-- O ile zmieni się jasność światła 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
-- Druga pętla do wyłączenia światła
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endPodsumowanie
Aby stworzyć złożone efekty w projekcie, skrypty mogą używać wielu pętli, a nawet kombinacji różnych typów pętli. Aby zakodować świecące światło, dwie pętle są zagnieżdżone w pętli while. Gdy programiści dodają więcej pętli, upewnij się, że sprawdzają wcięcia, aby kod był łatwy do odczytania.