본문 바로가기

렌파이/GUI 꾸미기

게임 내 메뉴 화면 꾸미기


1. 레이아웃 & 스타일 이용하기

각 메뉴 (게임 메뉴, 환경설정, 세이브 로드 화면, 프롬프트 - 안내창) 마다 지정된 레이아웃이 몇 가지 있다.

이 페이지를 확인해 보면 각 메뉴에 해당하는 레이아웃 종류가 다 나와있다.
layout.grouped_main_menu () 라던지  layout.classic_main_menu () 라던지 하는 것들

원하는 레이아웃으로 설정하는 방법은 init - 10 python: 블록에 이런 코드들을 써넣는 것이다.



각 레이아웃 설명 밑에 나와있는 변수 variables 는 그 레이아웃에 관련된 것들을 설정할 때 사용하는 것이다. 보기 좋게 레이아웃을 설정했던 블록에 같이 써 주면 된다.



-10 이라는 건 init 블록이 호출되는 우선순위를 뜻한다. 기본 메뉴들의 레이아웃은 전부 init - 1 python: 블록에 설정되어있는데, 사용자가 레이아웃을 지정한 블록을, 저 init -1 python: 블록보다 먼저 불러와야 충돌이 안 생김. 그래서 -10이라고 적어준 거다. 꼭 -10으로 해야하는 건 아니고, -1보다 작은 숫자면 아무거나 상관 없음.

이렇게 설정한 메뉴 화면을 스타일을 이용하여 변경해주면 된다(스타일 이용법은 링크를 클릭).


2. layout.imagemap_ ..

레이아웃 종류 중에서 앞에 imagemap_ 이 붙은 것들은 renpy.imagemap 과 사용법이 같다.
자세한 건 링크 참조

..벗뜨, 앞서 설명했던 layout 어쩌구들은 스크린 언어가 새로 추가되면서 사용할 필요가 없게 되었다(제대로 기능은 하지만 스크린 언어를 이용해 만드는 게 훨씬 쉽고 편하다)

3. 스크린 언어를 이용하여 새로 만들기

각 메뉴마다 기본 골격이 되는 스크립트는 여기 나와있음.
스크린 언어로 사용되는 명령문들의 종류는 여기
해당 명령문들에 대한 action, value값은 여기를 참조.

스크린을 만들어서 init -10: 같은 블록에다 넣어두도록 하자.


끝.


이라고 하면 좀 성의 없어보이니까 뭐 예제를 하나 만들어보겠음.
환경설정 화면을 예로 들면..


① 기본 버튼같은 것으로만 만드는 경우:



스크린 언어의 이미지맵을 이용하는 경우:



주석을 차례대로 참조할 것.

환경설정과 관련된 버튼의 액션은 여기에 나와있는 것 중 '함수' 항목을 보면 알 수 있다.
자기가 만든 스크린을 사용하는 경우 스타일은 style_group을 사용해서 지정할 수 있음(링크된 페이지의 거의 마지막 부분에 적혀있다).