W informatyce lub tworzeniu gier wiele rzeczy często się powtarza. Na przykład aplikacja może aktualizować treść w strumieniu co kilka sekund, lub gra może nagradzać graczy nagrodą za każdy dzień, w którym są zalogowani. Aby osiągnąć takie zachowanie, programiści często używają pętli.
W informatyce pętla to wzór kodowania, który powtarza zestaw instrukcji, często do momentu spełnienia określonego warunku. Aby to poćwiczyć, napiszesz kod, który zmienia kolory w nieskończoność. Późniejsze lekcje pokażą, jak zatrzymać pętlę.
Ustaw część i skrypt
Użyj dowolnego projektu Roblox do tego ćwiczenia. Po zakończeniu, ta część może być użyta jako element dekoracyjny w środowisku.
Utwórz nową część z opisową nazwą. Ta lekcja używa LoopingPart.
W ServerScriptService, dodaj nowy skrypt o nazwie LoopingScript.
W skrypcie, usuń Hello World i napisz komentarz, określający cel tego skryptu.
-- Zmienia kolor LoopingPart co kilka sekund
Użyj zmiennych do przechowywania części
Zmiennych można również używać do przechowywania odniesień do obiektów poza łańcuchami znaków. Na przykład, gdy skrypt zna odniesienie do części, może ją zmienić.
Zamiast pisać workspace.NameOfYourPart w kółko, cały ten wiersz można przechować w lokalnej zmiennej. Lokalne zmienne są tworzone przez wpisanie local, a następnie nazwy zmiennej.
Na przykład: local nameOfVariable.
Pod komentarzem, utwórz lokalną zmienną wpisując local loopingPart.
-- Zmienia kolor LoopingPart co kilka sekundlocal loopingPartUstaw zmienną na pętlę, wpisując = workspace.LoopingPart w tym samym wierszu. Pamiętaj, że operator = ustawia wartość zmiennej na to, co jest po jego prawej stronie.
-- Zmienia kolor LoopingPart co kilka sekundlocal loopingPart = workspace.LoopingPart
Pętle while
Zanim stworzysz pętlę while dla zmieniającej się koloru części, warto wyjaśnić jej składnię. Pętla while ma trzy składniki:
- Kluczowe słowo while.
- Warunek, zawsze po kluczowym słowie.
- Instrukcje, między słowami kluczowymi do a end.
W pętlach warunki mogą być różnymi zdaniami logicznymi. Na przykład może to być, czy dwie liczby są takie same. Pętla będzie działać, jeśli jej warunek jest prawdziwy.
Zauważ, że w poniższym przykładzie, warunek jest prawdziwy, co oznacza, że ta pętla będzie działać w nieskończoność. W późniejszych lekcjach napiszesz konkretne warunki, które zatrzymują pętlę.
while true doprint("Ta pętla działa")end
Napisz pętlę while
Następnie skonfigurujesz pętlę while dla zmieniającej się koloru części.
W następnym wierszu wpisz while true do. Następnie naciśnij Enter, aby autouzupełnić i dodać słowo end.
-- Zmienia kolor loopingPart co kilka sekundlocal loopingPart = workspace.LoopingPart-- Kod pętliwhile true doend
Dodaj kod w pętli
Gdy pętla while została stworzona, można dodać instrukcje do zmiany koloru części w czasie. Wewnątrz pętli, dodaj linię kodu dla każdego koloru. Każdy kolor będzie korzystał z wartości RGB, sposobu przechowywania kolorów jako liczb w informatyce.
Między while true do a end, ustaw właściwość koloru części na Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endUstawianie koloru można wykonać za pomocą wskaźnika koloru w Studio. W tym celu kliknij lewym przyciskiem myszy wewnątrz () obok fromRGB. Następnie kliknij na ikonę koła kolorów. Gdy uzyskasz pożądany kolor, naciśnij OK, aby automatycznie dodać wartość koloru w kodzie.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
Spraw, aby skrypt czekał
Jeśli teraz dodasz drugą linię kodu zmieniającego kolor, zmieniłby kolor cegły tak szybko, że mógłbyś nawet nie zobaczyć pierwszego koloru. Aby skrypt czekał przed uruchomieniem następnej linii kodu, użyj funkcji task.wait().
W wierszu po zmianie koloru cegły, wpisz task.wait(3). Liczba umieszczona wewnątrz () określa, ile sekund skrypt będzie czekać.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endPod funkcją wait, powtórz tę samą procedurę dodawania nowego koloru. Zakończ ją dodatkowymi funkcjami wait.
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endPrzetestuj kod i sprawdź, czy kolory się zmieniają.
Notatki dotyczące rozwiązywania problemów
Na tym etapie, jeśli zmieniająca się kolor część nie działa zgodnie z zamierzeniami, spróbuj jednego z poniższych rozwiązań.
Problem: Kolory są pomijane
- Upewnij się, że masz funkcję wait między każdym zmianą koloru, zwłaszcza w ostatniej linii.
- Sprawdź, czy cały kod zmiany koloru i czekania znajduje się między sekcjami while true do a end.
Problem: Część nadal jest szara lub nie zmienia koloru zgodnie z zamierzeniami
- Upewnij się, że wszystkie wartości RGB mają liczby od 0 do 255, są całkowite lub dziesiętne i są oddzielone przecinkami.
- Liczby wewnątrz () funkcji wait powinny być większe niż 1. Możliwe, że jeśli czas oczekiwania jest zbyt krótki, nie zobaczysz tego koloru.
Pełny skrypt do pętli zmieniającej kolor
-- Utwórz zmienną do przechowywania częścilocal loopingPart = workspace.LoopingPart-- Kod pętliwhile true do-- Zmienia kolor loopingPartloopingPart.Color = Color3.fromRGB(82, 227, 255)-- Czeka 3 sekundy przed następną instrukcjątask.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
Podsumowanie
Pętle są powszechnym elementem w większości języków komputerowych. Służą do powtarzania instrukcji, czasami aż do spełnienia konkretnych warunków. W tym artykule użyto pętli while do wiecznego powtarzania instrukcji. Aby stworzyć pętlę while, która powtarza się w nieskończoność, użyj poniższej składni, upewniając się, że instrukcje są zawarte między słowami kluczowymi do i end.
while true do-- Instrukcjeend