Создание информационного экрана (Creating an Information Screen)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Информационный экран – экран, который можно использовать для отображения различной информации, от статистики очков симпатии до раскрытия всего, что вам правда нравится. На данном примере, мы продемонстрируем, как с помощью информационного экрана, показать очки симпатии любовного увлечения двоих персонажей.

В разделе Init[править | править код]

Здесь вам нужно определить свои переменные.

init:
    $ bob_points = 0 # переменная для очков симпатии Боба на протяжении всей игры
    $ larry_points = 0 # переменная для очков симпатии Ларри на протяжении всей игры 
    $ bob_max = 10 #переменная должна быть установлена на максимальное количество очков симпатии Боба
    $ larry_max = 10#переменная должна быть установлена на максимальное количество очк. симпатии Ларри
    $ variable = False # когда значение False, кнопка экрана симпатии не появляется на экране

В Screens.rpy[править | править код]

Вы можете фактически определить этот экран в любом месте кода, но будет проще сгруппировать его с другими экранами.

screen button:
    vbox xalign 0.1 yalign 0.1:
        textbutton "Показать очки симпатии" action ui.callsinnewcontext("aff_screen_label")
        # также можете использовать кнопки с изображением:
        imagebutton:
            idle "button_idle.png"
            hover "button_hover.png"
            action ui.callsinnewcontext("aff_screen_label")

Вышеуказанный код кнопки, открывающую статистику/экран очков симпатии при нажатии. Не забудьте изменить имена файлов изображений и координаты xalign/yalign для своего собственного кода. Если вы не хотите, чтобы кнопка отображалась всё время, можно сделать что-то подобное:

screen button: 
    if variable:    
        vbox xalign 0.1 yalign 0.1:
            textbutton "Показать очки симпатии" action ui.callsinnewcontext("aff_screen_label")
            # также можете использовать кнопки с изображением:
            imagebutton:
                idle "button_idle.png"
                hover "button_hover.png"
                action ui.callsinnewcontext("aff_screen_label")

Этот делает так, что кнопка отображается только в том случае, если variable принимает значение True. Что касается фактического содержания статистики/экран очков симпатии, то:

screen aff_screen:
    frame:
        has vbox
        text "Боб: [bob_points] points"
        text "Ларри: [larry_points] points"
        textbutton "Возврат" action Return()

label aff_screen_label:
    call screen aff_screen
    return

Будет выглядеть как "Боб: ### очков" и "Ларри: ### очков", причем ### является любым числом переменных, установленных для этих очков в данный момент. Если вы хотите использовать бары вместо текста (удобно для статистики/очков симпатии), можете использовать бары, как тут:

screen aff_screen:
    frame:
        has vbox
        hbox:
            label "Боб: " xminimum 100
            bar range bob_max value bob_points xmaximum 400
        hbox:
            label "Ларри: " xminimum 100
            bar range larry_max value larry_points xmaximum 400
        textbutton "Возврат" action Return()

label aff_screen_label:
    call screen aff_screen
    return

В скрипте игры[править | править код]

label start:
    show screen button # сделает так, чтобы кнопка отображалась на экране

Если вы создаете информационный экран таким образом, что кнопка не всегда отображается:

label start:
    show screen button
    # хотя мы ранее сказали показать кнопку, она не будет отображаться до тех пор, пока переменная 
    # не пример значение True
    "Бла бла бла!"
    $ variable = True
    # и теперь появится кнопка!
    "Бла бла бла~"
    $ variable = False
    # и кнопка снова исчезает...

Источник[править | править код]

Статья "Information Screen" на английском языке


На главную страницу Книга рецептов Энциклопедии Ren'Py Книга рецептов Ren'Py Вернуться к началу статьи