Verse wykorzystuje typ logic do wprowadzania wartości logicznych, co oznacza, że typ logic może przyjąć tylko jedną z dwóch wartości: true lub false.
Zarówno true, jak i false są literałami logicznymi, gdy zastosuje się je w kodzie Verse.
Poniżej zaprezentowano przykład utworzenia zmiennej logicznej o nazwie TargetLocked, inicjowanej za pomocą literału logicznego false:
var TargetLocked : logic = false
Operacje logiczne
Typ logic obsługuje operacje zapytania i operacje porównywania.
Zapytanie
Wyrażenia zapytania wykorzystują operator ? (zapytanie) i sprawdzają, czy wartość logic to true. Jeśli wartość logic to false wyrażenie zawodzi.
# Określ, czy ikona zablokowania celu ma być wyświetlana, jeśli cel jest zablokowany
if (TargetLocked?):
ShowTargetLockedIcon()
Więcej informacji na temat operacji zapytań zawiera sekcja Operatory.
Porównanie
W przypadku operacji porównywania można użyć zawodnego operatora =, aby sprawdzić, czy dwie wartości logiczne są równe, oraz zawodnego operatora <>, aby sprawdzić, czy są one różne.
Przykładowy kod zaprezentowany poniżej spowoduje wyświetlenie ikony "niedostępnej akcji", jeśli gracz użył broni, ale nie ma celu, albo jeśli ma cel, ale nie ma broni. Można to wyrazić przez porównanie wartości logic reprezentujących dwa czynniki.
- Jeśli obydwie wartości przyjmują wartość false, wówczas ikona będzie niewidoczna, ponieważ gracz nie próbuje atakować.
- Jeśli obydwie wartości przyjmują wartość true, wówczas ikona będzie niewidoczna, ponieważ gracz może przeprowadzić atak.
# Zainicjuj zmienne logiczne w celach demonstracyjnych.
var TargetLocked : logic = false
var WeaponEquipped : logic = true
# Ustal, czy wyświetlenie ikony "niedostępnej akcji" jest zasadne.
if (WeaponEquipped <> TargetLocked):
# Ikona powinna się pojawić, ponieważ gracz najwyraźniej próbuje przeprowadzić
# atak, jednak brakuje mu broni lub celu.
ShowUnavailableIcon()
Więcej operacji porównywania zawiera sekcja Operatory.
Konwersja wyrażenia zawodnego na typ logic
Wyrażenie zawodne można rzutować na typ logic przy użyciu logic{failable-expression}, gdzie failable-expression to wyrażenie, które może się zakończyć niepowodzeniem.
W poniższym przykładzie wyrażenie zawodne GetRandomInt(0, MineFrequency) <> 0 jest konwertowane na wartość logic false, jeśli losowa liczba całkowita wynosi 0. W innym przypadku jest konwertowane na wartość true.
IsMined := logic{GetRandomInt(0, MineFrequency) <> 0}
Biblioteka standardowa
Biblioteka standardowa zawiera funkcje, które ułatwiają tworzenie i stosowanie wartości logicznych. Więcej szczegółów na temat tych funkcji zawiera sekcja Odwołania do interfejsu API Verse.
Typ możliwy do persystencji
Wartości logiczne (logic) nie mogą być persystentne, co oznacza, że możesz ich użyć w zmiennych weak_map o zasięgu modułowym i zachować ich wartości podczas sesji gry. Więcej informacji na temat persystencji w Verse znajdziesz w artykule Używanie persystentnych danych w Verse.