В языке Verse тип logic
используется для хранения булевых значений, поэтому для переменных этого типа возможны только два значения: true
и false
.
И true
, и false
являются логическими литералами, когда используются в коде Verse.
Ниже приведён пример создания логической переменной с именем TargetLocked
, инициализированной логическим литералом false
:
var TargetLocked : logic = false
Логические операции
Тип переменных logic
поддерживает операции запросов и операции сравнения.
Запросы
В выражениях запроса используется оператор ?
(запрос) для проверки, содержит ли переменная типа logic
значение true
. Если значением переменной типа logic
будет false
, выражение завершится с ошибкой.
# Определяем, показывать ли значок захвата цели, если цель захвачена
if (TargetLocked?):
ShowTargetLockedIcon()
Более подробную информацию о запросах см. в разделе Операторы.
Сравнение
В операциях сравнения можно использовать оператор =
, допускающий возможность ошибки, для проверки равенства двух логических значений, и оператор <>
(также с возможностью ошибки) для проверки неравенства.
Например, приведённый ниже код отображает значок «Недоступное действие», если игрок взял в руки оружие, но не имеет цели, или имеет цель, но не взял оружие. Это можно сделать путём сравнения значений переменных типа logic
, представляющих эти два условия:
- Если оба значения ложны, вы не увидите значок, потому что игрок не пытается атаковать.
- Если оба значения истинны, вы не увидите значок, потому что игрок может атаковать.
# Инициализируем логические переменные для демонстрации.
var TargetLocked : logic = false
var WeaponEquipped : logic = true
# Определяем, нужно ли отображать значок «Недоступное действие».
if (WeaponEquipped <> TargetLocked):
# Значок должен появиться, так как игрок пытается
# атаковать, но у него нет либо оружия, либо цели.
ShowUnavailableIcon()
Другие операции сравнения описаны в разделе Операторы.
Приведение выражения с возможной ошибкой к логическому типу
Вы можете привести выражение с возможной ошибкой к типу logic
при помощи выражения logic{failable-expression}
, где failable-expression
— это выражение с возможной ошибкой.
В следующем примере выражение с возможной ошибкой GetRandomInt(0, MineFrequency) <> 0
приводится к типу logic
, а именно к значению false
, если случайное целочисленное значение равно 0; в противном случае оно приводится к значению true
.
IsMined := logic{GetRandomInt(0, MineFrequency) <> 0}
Стандартная библиотека
Стандартная библиотека предоставляет доступ к функциям, помогающим создавать и использовать логические значения. Более подробную информацию об этих функциях см. в Справочнике по API Verse.
Сохраняемый тип
Логические значения являются сохраняемыми. Это означает, что вы можете использовать их в переменных weak_map
, входящих в область видимости модуля, и их значения будут сохраняться в течение всех игровых сессий. Подробнее о сохраняемых элементах в Verse см. в статье Использование сохраняемых данных в Verse.