Verse에서는 부울 값의 타입으로 logic 을 사용합니다. 따라서 logic 은 두 가지 값, true 및 false 를 보유할 수 있습니다.
Verse 코드에서 true 와 false 는 모두 logic 리터럴입니다.
다음은 TargetLocked 로 명명된 logic 변수를 생성하고 logic 리터럴 false 로 초기화하는 예시입니다.
var TargetLocked : logic = false
logic 연산
logic 타입은 쿼리 연산과 비교 연산을 지원합니다.
쿼리
쿼리 표현식은 ? (쿼리) 연산자를 사용하여 logic 값이 true 인지 확인합니다. logic 값이 false 라면 표현식이 실패합니다.
# 타깃이 고정되었다면 타깃 고정 아이콘을 표시합니다.
if (TargetLocked?):
ShowTargetLockedIcon()
쿼리 연산에 대한 자세한 내용은 연산자를 참고하세요.
비교
비교 연산을 수행하려면 실패 가능한 연산자인 = 를 사용해 두 logic 값이 같은지 테스트하거나, 실패 가능한 연산자인 <> 를 사용해 값이 다른지 테스트할 수 있습니다.
예를 들어 아래의 예시 코드는 플레이어가 무기를 장착했지만 목표가 없는 경우, 또는 목표가 있지만 무기를 장착하지 않은 경우 '불가능한 행동' 아이콘을 표시합니다. 이는 두 요인을 나타내는 logic 값을 비교해 표현할 수 있습니다.
- 두 값이 모두 false인 경우, 플레이어가 공격하려고 하지 않으므로 아이콘이 표시되지 않습니다.
- 두 값이 모두 true인 경우, 플레이어가 공격할 수 있으므로 아이콘이 표시되지 않습니다.
# 예시를 보여주기 위해 logic 변수를 초기화합니다.
var TargetLocked : logic = false
var WeaponEquipped : logic = true
# '불가능한 행동' 아이콘을 표시해야 하는지 여부를 결정합니다.
if (WeaponEquipped <> TargetLocked):
# 플레이어가 공격하려고 하지만 무기 또는 목표가 없으므로
# 아이콘이 표시될 것입니다.
ShowUnavailableIcon()
비교 연산에 대한 자세한 내용은 연산자를 참고하세요.
실패 가능 표현식을 logic으로 변환
logic{failable-expression} 을 사용하여 실패 가능한 표현식을 logic 타입으로 형변환할 수 있습니다. 여기서 failable-expression 은 실패 가능 표현식입니다.
다음 예시에서 실패 가능 표현식 GetRandomInt(0, MineFrequency) <> 0 은 랜덤 인티저가 0일 때 logic 값 false 로, 그렇지 않을 경우에는 true 로 변환됩니다.
IsMined := logic{GetRandomInt(0, MineFrequency) <> 0}
표준 라이브러리
표준 라이브러리는 logic 값의 생성과 사용을 돕는 함수들을 제공합니다. 이러한 함수에 대한 자세한 내용은 Verse API 레퍼런스를 참고하세요.
퍼시스턴스 타입
로직 값은 퍼시스턴스입니다. 즉, 모듈 스코프 weak_map 변수에서 사용할 수 있으며 전체 게임 세션에서 값이 유지됩니다. Verse의 퍼시스턴스에 대한 자세한 내용은 Verse에서 퍼시스턴스 데이터 사용하기를 참고하세요.