본문 바로가기
programming/renpy

[renpy 강좌 03 ] 다양한 GUI 다루기

by FAPER 2024. 5. 13.

 

이전 강의 : https://faper.tistory.com/38

 

[renpy 강좌 02 ] 캐릭터 및 배경 이미지 추가

이전 강의 : https://faper.tistory.com/37 [renpy 강좌 01 ] 설치 및 기초 문법Ren'Py는 주로 비주얼 노벨 및 스토리 기반 게임을 제작하는 데 사용되는 인기 있는 게임 엔진이다. 이 엔진은 Python

faper.tistory.com

 

[renpy 강좌 01 ] 설치 및 기초 문법

Ren'Py는 주로 비주얼 노벨 및 스토리 기반 게임을 제작하는 데 사용되는 인기 있는 게임 엔진이다. 이 엔진은 Python 프로그래밍 언어에 기반을 두고 있으며, 그 이름도 Python과 '

faper.tistory.com

 

이제 해볼 것은 frame과 vbox를 통해 다양한 GUI를 만들어 보는 것이다.

 

일반적인 화면 뿐만 아니라, 인벤토리나 상태창 같은 별도의 UI가 필요할 때가 있다.

init python:
    name = ""
    day = 0 #일 수
    stress = 0  #스트레스
    strength  = 0 #근력
    inteligence = 0 #지성
    luck = 0 # 운
    morning = '휴식' 
    free = '휴식'
    afternoon = '휴식'
    

init: 
    screen stat: #스텟창
        frame:
            align (0.95, 0.05)
            grid 5 2:
                text '시간'
                text '스트레스  '
                text '근력'
                text '지성'
                text '행운'

                text "%d 일차" % day
                text "%d" % stress
                text "%d" % strength
                text "%d" % inteligence
                text "%d" % luck

 

이렇게 script.rpy에 쓰게 되면, 하나의 상태창을 만들 수 있다. 여기서는 init python: 을 통해 먼저 변수를 선언하고, 해당 변수의 값들을 보여주는 예제이다.  grid 5 2 :는 5 x 2 크기의 격자를 만든다는 뜻이다. 

 

# 이 파일에 게임 스크립트를 입력합니다.
init python:
    name = ""
    day = 0 #일 수
    stress = 0  #스트레스
    strength  = 0 #근력
    inteligence = 0 #지성
    luck = 0 # 운
    morning = '휴식' 
    free = '휴식'
    afternoon = '휴식'
# 게임에서 사용할 캐릭터를 정의합니다.
define e = Character('아이린', color="#c8ffc8", image='airin01')
define sys = Character('system', color="#d42a1e")
# image 문을 사용해 이미지를 정의합니다.
# image eileen happy = "eileen_happy.png"
image city = "bg01.png"
image cafe = "cafe.png"
image park = "park.png"

image airin01 = "airin01.png"
image airin01 idle = "airin02.png"

default book = False


init: 
    screen stat: #스텟창
        frame:
            align (0.95, 0.05)
            grid 5 2:
                text '시간'
                text '스트레스  '
                text '근력'
                text '지성'
                text '행운'

                text "%d 일차" % day
                text "%d" % stress
                text "%d" % strength
                text "%d" % inteligence
                text "%d" % luck
label start:
    scene city
    sys "오른쪽 상단에서 현재 상태를 알 수 있습니다."
    sys "하루의 일과를 정해보세요."
    show screen stat

 

이렇게 show screen을 통해 stat을 열어보면

 

오른쪽 상단에 현재 일 수와 다양한 스탯을 표현할 수 있다.