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.
Aby ułatwić zobaczenie światła, zmień świat gry na nocny czas . W Explorer > Oświetlenie > zmień Czas zegara na 0.
Utwórz nową część lub model o nazwie Lamp.
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ę.
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.Parentlocal light = lightPart.SpotLightNastę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 razemlocal 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.
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 = 1for currentBrightness = 0, 5, brightnessChange doendW 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 dolight.Brightness = currentBrightnessendWięc zmiana nie dzieje się naraz, dodaj funkcję oczekiwania za pomocą wartości w timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endUruchom 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.
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 dolight.Brightness = currentBrightnesstask.wait(timeChange)endUruchom 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.
Podczas pętli for utwórz nową pętlę while.
while true doendUmieść 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 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 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 lampylightPart = script.Parentlight = lightPart.SpotLight-- Jak dużo jasność światła zmieni się za każdym razemlocal brightnessChange = 1-- Jak często w sekundach światło zmieni jasnośćlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Drugi cykl, aby wyłączyć światłofor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
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.