본문 바로가기

렌파이/GUI 꾸미기

스크린 언어 (3) - 유용한 스크린 명령문 및 속성

유용한 스크린 명령문 및 속성

use

한 스크린을 다른 스크린의 일부로써 사용할 때나, 한 스크린이 다른 스크린의 작동을 제어하는 스크린일 때에는 use를 이용하면 됩니다.
예를 들어 A스크린에 있는 버튼은 눌릴 때마다 각기 다른 스크린을 띄운다면 각 스크린마다 use 를 써서 A스크린을 포함시켜야 합니다.
이 예에 적합한 스크린이 바로 네비게이션 스크린입니다. 네비게이션은 게임 중에 마우스를 오른쪽 클릭하면 나타나는 화면에서 볼 수 있습니다.


네비게이션에 있는 메뉴를 각각 클릭하면 뒤에 배경처럼 나타난 세이브 화면이 눌린 버튼에 따라 다른 화면으로 바뀌게 됩니다.



screens.rpy 에서 게임 메뉴 스크린들의 스크립트(save, load, preference)를 살펴보면 모두 use navigation 이라는 명령어를 사용하고 있는 것을 확인할 수 있습니다. 이는 게임 메뉴 스크린이 navigation 스크린을 이용한다는 것을 뜻합니다.

tag

그런데 게임 메뉴 스크린 스크립트를 확인해보면 또 다른 명령어가 겹치는 것을 알 수 있습니다. 바로 tag 인데, 이 명령어는 이미지 이름에서 이미지 태그가 하는 역할과 비슷합니다.
즉, 같은 태그 이름을 가진 스크린이 나타나려 할 때는, 이전 스크린은 자동으로 지우고 새 스크린을 나타낸다는 의미입니다. 같은 부류의 스크린은 같은 태그로 묶으면 일일히 hide screen 명령어로 지우는 노고를 덜 수 있습니다.

zorder

zorder는 스크린 표시 순서를 정할 때 쓰입니다. 예를 들면 포토샵 같은 데에서는 레이어가 여러개 겹쳐졌을 때, 레이어 목록에서 제일 상단에 있는 레이어가 제대로 표시되고 그 아래 레이어는 첫 레이어 뒤에 가려져서 나타납니다. 이같은 동작을 렌파이에서는 zorder 로 정한다는 의미입니다. zorder 값이 낮은 스크린이 제일 앞쪽에 나타나고, 값이 높으면 앞쪽 스크린 뒤에 나타납니다.

at

at은 모든 UI에 적용할 수 있는 공통 속성으로, transform 명령어를 이용해 만든 변환 동작을 적용하는데 쓰입니다. 이 at은 개별 UI에 적어 사용할 수 있습니다.


ATL로는 온갖 움직임을 만들어 줄 수 있으므로 at과 transform 잘만 이용하면 있어보이는(..) 게임을 만들 수 있습니다.

style

모든 UI에 적용할 수 있는 공통 속성으로, UI에 적용할 스타일의 이름을 적어 사용합니다.


스타일 적용에 대한 설명은 한 번 한 적이 있으며, 이쪽에 자세히 나와있습니다.

기타

이 외의 스크린 명령문, 스크린 속성, UI 공통 속성은 각 단어에 링크된 매뉴얼에서 확인할 수 있습니다. 특별한 경우가 아니면 잘 쓰이지 않습니다.

스크린 이용시 주의할 점

스크린을 이용해서 버튼 등을 넣을 때는 스크린 동작이 꼬이지 않게 조심해야 합니다.
가끔 게임을 시험 진행하다보면 불필요한 부분에서 버튼이 나타난다던지, 필요한 순간에는 스탯창이 안 보인다던지 하는 경우를 맞닥뜨리게 됩니다. 미리 구조를 세워놓고 스크립트를 짜도 실수가 일어날 수 있으니 한 번씩은 결과물을 눈으로 확인해보는 것이 좋습니다.