인게임 메뉴
많은 비주얼 노벨에서 플레이어는 이야기의 결과를 제어하는 선택을 하도록 요청됩니다. Ren'Py 언어에는 사용자에게 선택을 제시하는 데 사용하기 쉬운 menu 문이 포함되어 있습니다.
다음은 menu 문의 예시입니다:
menu:
"어떻게 할까?"
"커피 마시기.":
"커피를 마시고 마지막 한 방울까지 좋아."
"차 마시기.":
$ drank_tea = True
"정치적 발언을 하지 않으려고 차를 마신다."
"절하다.":
jump genuflect_ending
label after_menu:
"음료를 마신 후에 나는 아침을 계속했다."
menu 문은 menu 키워드로 시작합니다. 이것은 label 이름이 뒤에 따를 수 있으며, 이 경우 해당 label로 전달된 것과 동일합니다. 예를 들면:
menu drink_menu:
...
menu 문 다음에는 들여쓴 블록이 따릅니다. 이 블록은 :ref:say 문 <say-statement>을 포함할 수 있으며, 적어도 하나의 메뉴 선택을 포함해야 합니다. say 문이 존재하면 메뉴와 동시에 화면에 표시됩니다.
메뉴 선택
메뉴 선택은 게임 내 메뉴에서 사용자가 선택할 수 있는 옵션입니다. 메뉴 선택은 문자열로 시작합니다. 문자열 뒤에는 선택이 조건부로 만들어질 경우 if 절이 따를 수 있습니다. 메뉴 선택은 콜론으로 끝나며, Ren'Py 문의 블록이 뒤따라야 합니다.
선택이 선택되면 문 블록이 실행됩니다. 블록의 끝에 도달하면 메뉴 문의 끝 다음 문으로 계속됩니다.
if 절은 키워드 if 다음에 Python 표현식이 따릅니다. 표현식이 참인 경우에만 메뉴 선택이 표시됩니다. 다음 메뉴에서:
menu:
"왼쪽으로 가기.":
...
"오른쪽으로 가기.":
...
"위로 날기." if drank_tea:
...
세 번째 선택은 drank_tea 변수가 true인 경우에만 제시됩니다. (그러나 :var:config.menu_include_disabled 변수가 True로 설정된 경우 비활성화된 버튼으로 표시됩니다.)
모든 메뉴 옵션이 if 조건이 충족되지 않으면 메뉴는 건너뛰어지고 메뉴 다음 문으로 제어가 전환됩니다.
메뉴 세트
메뉴는 라인 단위로 set 절을 포함할 수 있습니다. 존재하는 경우 캡션에 포함되지 않은 항목만 메뉴로 표시됩니다. 선택이 완료되면 해당 선택의 캡션이 세트에 추가될 수 있습니다.
if 절과 마찬가지로 선택지가 없으면 제어가 메뉴 다음 문으로 전환됩니다.
역사적인 이유로 세트는 세트 객체 또는 목록이 될 수 있습니다.
default menuset = set()
menu chapter_1_places:
set menuset
"어디로 가야 할까?"
"수업으로 가기.":
jump go_to_class
"바로 가기.":
jump go_to_bar
"감옥으로 가기.":
jump go_to_jail
label chapter_1_after_places:
"와우
, 그것은 하나의 놀랍도록 긴 화요일이었다."
메뉴 인수
메뉴 자체와 메뉴의 개별 선택지에 인수를 전달할 수 있습니다. 메뉴에 인수를 전달하려면 선택적인 이름 뒤에 나오고 콜론 바로 앞에 추가하면 됩니다. 메뉴 선택에 인수를 전달하려면 문자열 뒤에 if 키워드나 콜론 바로 뒤에 추가하면 됩니다.
menu ("jfk", screen="airport"):
"시카고, 일리노이" (200):
jump chicago_trip
"델러스, 텍사스" (150, sale=True):
jump dallas_trip
"핫스프링스, 알칸소" (300) if secret_unlocked:
jump hot_springs_trip
메뉴에 전달된 메뉴 인수는 화면에 전달되는 인수가 됩니다. 단, 화면을 선택하는 screen 인수와 :ref:NVL-mode 메뉴 <nvl-mode-menu>를 선택하는 nvl 인수는 제외됩니다. 또한 _mode라는 특수 키워드를 사용하여 이 상호 작용의 모드를 "menu"로 설정할 수 있습니다. 선택지에 대한 인수는 메뉴 화면에 전달되는 항목에 대한 인수가 됩니다.
:ref:choice screen <choice-screen> 및 :var:config.menu_arguments_callback에 대한 문서를 참조하십시오.
'Programming > Renpy' 카테고리의 다른 글
| 렌파이 이미지 갤러리 (1) | 2024.01.25 |
|---|---|
| 렌파이 대화 - renpy 한국어 번역 (1) | 2024.01.24 |
| 렌파이 레이블 및 제어 흐름 : renpy 한국어 번역 (0) | 2024.01.22 |
| 렌파이 언어기초 - renpy 한국어 번역 (1) | 2024.01.22 |