본문 바로가기

렌파이/GUI 꾸미기

스크린 언어 (1) - 스크린 만들기



주 메뉴, 게임 메뉴, 세이브/로드 화면, 대사창 등, 렌파이에서 볼 수 있는 화면을 모두 가리켜 스크린이라고 합니다. 그리고 스크린이 작동하는 방식을 제어하는 데 쓰는 언어를 바로 스크린 언어라고 합니다. 스크린 언어를 이용하면 기존 스크린들을 바꿀 수도 있고, 새로운 스크린을 만들 수도 있습니다.

스크린 만들기

먼저 init 블록에서 screen 명령어를 이용해 스크린을 만듭니다. 그리고 screen 명령어를 블록으로 만든 후 그 안에 스크린 언어를 이용해 화면에 나타낼 것을 적어주면 됩니다.


이 때 add나 text 등은 스크린 언어의 일부로, UI 명령문이라고 합니다. UI는 스크린을 구성하게 되는 것, 예를 들면 위의 add나 text 가 만들어내는 것을 가리킵니다. 위에 add처럼 각 UI 명령문 다음에는 스타일 속성을 적을 수 있습니다. 속성값을 바꿔주면 해당 UI의 위치를 바꾸거나 크기를 바꾸거나 할 수 있습니다.

show screen / hide screen

screen 명령문으로 만든 스크린을 게임에서 나타내려면 show screen 명령문을 써줍니다.



show screen 명령문으로 불러온 스크린은 hide screen 명령문으로 숨기기 전까지는 화면에 계속 나타나게 됩니다. 게임상의 날짜나 항상 표시해야 할 정보를 나타낼 때 유용합니다.

스크린 만들기 2

스크린에는 이미지나 글자외에도 버튼이나 막대 그래프, 이미지맵을 넣을 수 있습니다. 그러나 이 버튼이나 막대 그래프, 이미지맵은 위에 add 나 text와는 달리 플레이어와 상호작용을 하는 UI입니다. 쉽게 말하자면 이것들은 건드리면 반응하도록, 혹은 게임 플레이에 영향을 줄 수 있도록 만들 수 있다는 얘기입니다.

버튼 관련 UI는 action 속성을 입력해야 상호작용을 하고, 막대 그래프를 그리는 바 UIvalue 와 range, changed, adjustment 등을, 이미지맵hotspot 이나 hotbar로 속성을 입력해야 상호작용을 원활히 합니다. 이 글에서는 버튼에 대해서만 설명해두었습니다.

버튼

버튼을 만들 때는 textbutton, imagebutton 명령문을 사용합니다. 명령문을 보면 알 수 있듯 textbutton 은 글자로, imagebutton은 그림으로 버튼을 만듭니다. 버튼에는 action 속성을 적어주어 상호작용하도록 만듭니다.

textbutton

textbutton 을 만드려면 textbutton "글자" action 적절한 액션 을 적어주면 됩니다.


imagebutton

imagebutton 명령문은 평상시의 버튼 이미지와 마우스가 올라갔을 때 표시할 이미지를 적는 것 외에 나머지는 textbutton과 사용법이 같습니다.



call screen

action 속성이 적힌 스크린을 표시할 때는 show screen 대신에 call screen을 사용합니다. call screen 명령문으로 호출하면 action 이 실행되고 해당 스크린은 자동으로 사라집니다. Return 액션을 쓰는 경우에는 Return 액션에 적은 값이 _return 변수에 저장되어 사용할 수 있게 됩니다.



UI 명령문 및 액션 목록

UI 명령문 목록은 이쪽을, 액션 목록은 이쪽에서 볼 수 있습니다.