W grach często występuje wiele relacji przyczynowo-skutkowych. Na przykład:
- Jeśli gracz zdobędzie 10 punktów, to wygrywa grę.
- Jeśli gracz ma power-up, to może biegać super szybko.
- Jeśli gracz powie "Wszystkiego najlepszego" na czacie, to spada konfetti.
Skrypty używają instrukcji warunkowych, aby obsługiwać tego typu sytuacje. Instrukcje warunkowe to linie kodu, które wykonują się tylko wtedy, gdy pewne warunki są spełnione. Jednym z rodzajów instrukcji warunkowej jest instrukcja if/then. W Luau wzór składni dla instrukcji if wygląda tak:
if "coś się dzieje" then
-- Spraw, aby coś innego się wydarzyło
endFragmenty kodu używające instrukcji warunkowych to struktury kontrolne. Struktury kontrolne są jak diagramy przepływu w formie kodu i mogą zawierać kilka instrukcji warunkowych.
Ćwiczenie z instrukcją if
Te kroki pokazują, jak stworzyć skrypt, który zmienia kolor części, jeśli warunek jest prawdziwy.
W ServerScriptService utwórz nowy skrypt i nazwij go TruthChecker. Dodaj odpowiedni komentarz do skryptu.
-- Zmienia część, jeśli warunek jest prawdziwyUtwórz nową część o nazwie LieDetector.
Formatowanie instrukcji if
Warunki mogą przybierać różne formy, ale często są to proste stwierdzenia, takie jak równania matematyczne. Na przykład, jeśli 1+1 równa się 2, to uruchom jakiś kod. Podobnie jak w zwykłych równaniach matematycznych, instrukcje warunkowe mogą używać operatorów takich jak plus (+) lub mniejsze niż (<), aby ocenić stwierdzenia.
Jednym z operatorów, na który warto zwrócić uwagę, jest ==; oznacza "jest równe". Tak więc stwierdzenie 2 + 2 == 4 można odczytać jako "dwa plus dwa równa się cztery". Uważaj, aby nie pomylić go z =, który przypisuje nowe wartości obiektom, takim jak zmienne.
Ustaw pustą instrukcję warunkową. W skrypcie wpisz if then, a następnie naciśnij Enter, aby autouzupełnić warunek. Słowo kluczowe then będzie podkreślone, ponieważ kod jest niekompletny.
if then-- pusty kodendPo słowie kluczowym if wpisz prawdziwe stwierdzenie, takie jak 3 + 3 == 6.
if 3 + 3 == 6 then-- pusty kodendW obrębie instrukcji warunkowej odwołaj się do części, którą nazwałeś LieDetector, i zmień właściwość Color tej części na zieloną.
if 3 + 3 == 6 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endPrzetestuj swój kod. Jeśli trzy plus trzy równa się sześciu, część stanie się zielona.
Sprawdzenie fałszywego warunku
Teraz celowo zmień stwierdzenie, aby zobaczyć, co się stanie, gdy równanie matematyczne będzie fałszywe.
W instrukcji if zmień równanie na coś nieprawdziwego, na przykład 3 + 3 >= 10.
if 3 + 3 >= 10 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endPrzetestuj teraz swój kod. Część nie powinna stać się zielona dla fałszywego stwierdzenia.
Operatory matematyczne
Tabela poniżej przedstawia niektóre powszechne operatory Luau. Więcej informacji na temat operatorów można znaleźć w Operatorach Luau.
| Symbol | Znaczenie |
|---|---|
| + | Dodawanie |
| - | Odejmowanie |
| * | Mnożenie |
| / | Dzielenie |
Operatory porównania
- == : Jest równy.
- ~= : Nie jest równy.
- < lub > są używane do oznaczania mniejszego lub większego, odpowiednio.
- <= lub >= są używane do oznaczania mniejszego/większego lub równego, odpowiednio.
Zmienne i właściwości
Instrukcje warunkowe są również używane do oceny statusu właściwości i zmiennych. Poniższe kroki sprawdzają, czy zmienna została pomyślnie przypisana do wartości.
Usuń cały kod i skopiuj poniższy fragment do skryptu. Przetestuj go, a w Output pojawi się nowy błąd.
local mysteryPart = workspace.MysteryPart-- Ocenia jako prawdziwe, jeśli MysteryPart został pomyślnie przypisanyif mysteryPart thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endWstaw nową część do workspace o nazwie MysteryPart. Przetestuj ponownie, a LieDetector powinien stać się zielony.
Zbadaj, jak właściwości mogą być oceniane za pomocą instrukcji warunkowych. Zachowaj MysteryPart, ale ponownie usuń swój kod i skopiuj poniższy fragment kodu.
local mysteryPart = workspace.MysteryPart-- Ocenia jako prawdziwe, jeśli MysteryPart jest całkowicie nieprzezroczystyif mysteryPart.Transparency == 0 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)mysteryPart.Transparency = .2endPrzetestuj kod, a jeśli MysteryPart ma domyślną przezroczystość 0, stanie się przezroczysty, podczas gdy LieDetector stanie się zielony.
Podsumowanie
Instrukcje warunkowe sprawdzają, czy stwierdzenie jest prawdziwe, a jeśli tak, uruchamiają jakiś kod. Instrukcje if są bardzo powszechnym rodzajem instrukcji warunkowej. Używają wzoru "Jeśli to jest prawdziwe, to zrób to".
Fragmenty kodu używające instrukcji warunkowych nazywane są strukturami kontrolnymi. Struktury kontrolne mogą zawierać wiele instrukcji warunkowych.
Oprócz oceny, czy proste stwierdzenia matematyczne są prawdziwe, instrukcje warunkowe są również używane do sprawdzania statusu zmiennych i właściwości.