Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

Помощь по Ren'Py (Вопрос\Ответ)

Admin

#1
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)

lf2mr

#601
Как получить в файл .py переменную из renpy?
есть игра на renpy, к ней прилагается папка с скриптами phyton, которые помогают игре и без них она не будет работать. требуется в одном из этих питон скриптов получить переменную из renpy, а точнее нужно узнать какой язык локализации в данный момент использует renpy. В обычных .rpy файлах язык легко определяется "renpy.game.preference.language" или короче "preference.language", но если я указываю это в .py файлах, то появляется ошибка что это переменная не определена и не является глобальной при обращении к ней. как-то считать из renpy эту переменную или ещё как???

Добавлено. Возможно без примера не понятно, тогда вот ниже начало кода питон файла, откуда мне следует вызвать переменную из renpy.


Код
from renpy import store
rp = store.renpy
ui = store.ui

# Allows to set RenPy variables from Python code
def set_var(name, value):
    setattr(store, name, value)

def say_with_narrator(text, color=None, **kwargs):
    if kwargs:
        # If we have extra arguments use them to format text
        text = text.format(**kwargs)
    if color:
        text = add_color_to_text(text, color)
    rp.say(None, text)

def jump(label):
    rp.jump(label)

# We want to access those variable from RenPy code so we have to use RenPy's "store" to hold them

store.current_stat_person = None
store.current_stat_attribute = None

def show_stat_change_bar(person, attribute_name):
    store.current_stat_person = person
    store.current_stat_attribute = attribute_name
Тут в коде автор даже анотацию приложил, что в секции ниже берёт переменные из renpy, которые потом ниже используются. Но так как я плохо знаком с программированием и питоном в частности, то задача для меня оказалась непростой.
Сообщение отредактировал lf2mr - Четверг, 14/Ноя/2019, 12:10

nek0mata

#602
Доброго времени суток.
Интересует такая тема: можно ли сделать скриншоты сохранений кастомной формы?

вот тута:
add FileScreenshot(number)

Использую imagemap, и хочется все таки закругленный прямоугольник для слота. А стандартный скриншот выглядит на таком фоне кривовато.

dmit

#603
nek0mata, можно вырезать из скриншота любую кастомную форму (см. AlphaMask)
в простейшем случае:
add AlphaMask (FileScreenshot(slot), "maska.png")
Сообщение отредактировал dmit - Суббота, 16/Ноя/2019, 16:07
планета FOREVER!!!      Unkenbro team

KripWorland

#605
Такая проблема: 
в моей игре меню выбора всегда сопровождается фразой-вопросом. Так вот, если сделать сохранение вперед тем, как выбрать какой-либо вариант, то после загрузки эта фраза-вопрос исчезает...
Но при этом исчезает не на всех развилках. Где-то пропадает, где-то нет... Систему уловить не получается...
Может кто-нибудь может подсказать, как сделать так, чтобы фраза-вопрос не пропадала?

kkongbbaesong

#606
Здравствуйте, может глупый вопрос задам, но как убрать из меню настроек кнопки основного меню?

То есть, открылась игра, там меню по стандартному списку: начать, загрузить и т.д.
Нажимаю настройки, а кнопки эти не пропадают (предварительно после screen navigation(): прописал tag menu, но не помогло).

Можете подсказать? Желательно с объяснением, т.к. хочу разобраться

KripWorland

#607
kkongbbaesong, экран navigation и содержит кнопки для всех меню. В экране настроек (screen preferences)  есть строка:
use game_menu(_("Настройки"), scroll="viewport"), т.е. использовать экран основного меню, который в свою очередь использует экран навигации.
Если нужно создать экран настроек без стандартных кнопок основного меню, нужно просто убрать эту строку.

KripWorland

#609
Такая проблема: 
в моей игре меню выбора всегда сопровождается фразой-вопросом. Так вот, если сделать сохранение вперед тем, как выбрать какой-либо вариант, то после загрузки эта фраза-вопрос исчезает...
Но при этом исчезает не на всех развилках. Где-то пропадает, где-то нет... Систему уловить не получается...
Может кто-нибудь может подсказать, как сделать так, чтобы фраза-вопрос не пропадала?

Cpaworld

#610
Цитата KripWorland ()
Такая проблема: в моей игре меню выбора всегда сопровождается фразой-вопросом. Так вот, если сделать сохранение вперед тем, как выбрать какой-либо вариант, то после загрузки эта фраза-вопрос исчезает...
Но при этом исчезает не на всех развилках. Где-то пропадает, где-то нет... Систему уловить не получается...
Может кто-нибудь может подсказать, как сделать так, чтобы фраза-вопрос не пропадала?

По идее разница заключается в том, что в одном случае фраза у тебя перед тем как начинается меню выбора, а во втором сразу после начала меню.

Чтобы она не пропадала пиши ее:
menu:
"Вопрос"
А дальше варианты ответов.

KripWorland

#611
Цитата Cpaworld ()
По идее разница заключается в том, что в одном случае фраза у тебя перед тем как начинается меню выбора, а во втором сразу после начала меню.Чтобы она не пропадала пиши ее:
menu:
"Вопрос"
А дальше варианты ответов.
В том-то и дело, что именно так и написано:
Код
menu:
     Ann_03 "текст вопроса"
     "вариант 1"
     ...
Но где-то сохраняется вопрос, а где-то нет...

YakutD

#612
Подскажите что не так делаю.Мне нужно расположить слайдеры настроек по центру экрана, как я это сделал с радио и чекбокс кнопками. Однако у меня ни в какую не получается. Проект только создан, из моих изменений - скрыл лейблы, колонку меню боковую (меню собираемся показывать иначе) и фон заменил. Все. Я выяснил что на отступ от левого края экрана влияет стиль фрейма меню, который используют вообще все экраны меню как таковые. А как мне именно подвинуть слайдеры? Код экрана настроек прилагаю

Код
screen preferences():    tag menu

    use game_menu(_("Preferences"), scroll="viewport"):

        vbox:

            hbox:
                box_wrap True
                xalign 0.85
                if renpy.variant("pc") or renpy.variant("web"):

                    vbox:
                        style_prefix "radio"
                        label _("Display")
                        textbutton _("Window") action Preference("display", "window")
                        textbutton _("Fullscreen") action Preference("display", "fullscreen")

                # vbox:
                #     style_prefix "radio"
                #     label _("Rollback Side")
                #     textbutton _("Disable") action Preference("rollback side", "disable")
                #     textbutton _("Left") action Preference("rollback side", "left")
                #     textbutton _("Right") action Preference("rollback side", "right")

                null width (4 * gui.pref_spacing)

                vbox:
                    style_prefix "check"
                    label _("Skip")
                    textbutton _("Unseen Text") action Preference("skip", "toggle")
                    textbutton _("After Choices") action Preference("after choices", "toggle")
                    ##textbutton _("Transitions") action InvertSelected(Preference("transitions", "toggle"))

                ## Additional vboxes of type "radio_pref" or "check_pref" can be
                ## added here, to add additional creator-defined preferences.

            null height (10 * gui.pref_spacing)

            hbox:
                style_prefix "slider"
                box_wrap True
      #xalign0.5 не работает

                vbox:
                    label _("Text Speed")
                    bar value Preference("text speed")
                    label _("Auto-Forward Time")
                    bar value Preference("auto-forward time")
                vbox:

                    if config.has_music:
                        label _("Music Volume")

                        hbox:
                            bar value Preference("music volume")

                    if config.has_sound:

                        label _("Sound Volume")

                        hbox:
                            bar value Preference("sound volume")

                            if config.sample_sound:
                    textbutton _("Test") action Play("sound", config.sample_sound)

                    # if config.has_voice:
                    #     label _("Voice Volume")
                    #
                    #     hbox:
                    #         bar value Preference("voice volume")
                    #
                    #         if config.sample_voice:
                    #             textbutton _("Test") action Play("voice", config.sample_voice)

                    if config.has_music or config.has_sound or config.has_voice:
                        null height gui.pref_spacing

                        textbutton _("Mute All"):
                            action Preference("all mute", "toggle")
                            style "mute_all_button"

style pref_label is gui_label
style pref_label_text is gui_label_text
style pref_vbox is vbox

style radio_label is pref_label
style radio_label_text is pref_label_text
style radio_button is gui_button
style radio_button_text is gui_button_text
style radio_vbox is pref_vbox

style check_label is pref_label
style check_label_text is pref_label_text
style check_button is gui_button
style check_button_text is gui_button_text
style check_vbox is pref_vbox

style slider_label is pref_label
style slider_label_text is pref_label_text
style slider_slider is gui_slider
style slider_button is gui_button
style slider_button_text is gui_button_text
style slider_pref_vbox is pref_vbox

style mute_all_button is check_button
style mute_all_button_text is check_button_text

style pref_label:
    top_margin gui.pref_spacing
    bottom_margin 2

style pref_label_text:
    yalign 1.0

style pref_vbox:
    xsize 225

style radio_vbox:
    spacing gui.pref_button_spacing

style radio_button:
    properties gui.button_properties("radio_button")
    foreground "gui/button/radio_[prefix_]foreground.png"

style radio_button_text:
    properties gui.button_text_properties("radio_button")

style check_vbox:
    spacing gui.pref_button_spacing

style check_button:
    properties gui.button_properties("check_button")
    foreground "gui/button/check_[prefix_]foreground.png"

style check_button_text:
    properties gui.button_text_properties("check_button")

style slider_slider:
    xsize 350

style slider_button:
    properties gui.button_properties("slider_button")
    yalign 0.5

style slider_button_text:
    properties gui.button_text_properties("slider_button")

style slider_vbox:
    xsize 450
    #xalign 0.5 не работает
    #left_padding не работает

dmit

#613
Код
screen preferences():    tag menu
    use game_menu(_("Preferences"), scroll="viewport"):
        vbox:
            xalign 0.5
            hbox:
                box_wrap True
                xalign 0.5
планета FOREVER!!!      Unkenbro team

YakutD

#614
Цитата dmit ()
screen preferences():    tag menu    use game_menu(_("Preferences"), scroll="viewport"):
        vbox:
            xalign 0.5
            hbox:
                box_wrap True
                xalign 0.5

 К сожелению не работает

dmit

#615
хз, что у вас там. Попробуйте заменить vbox и hbox на:
Код
frame:
    background "#00f"
    has vbox
    xalign 0.5

frame:
    background "#0ff"
    has hbox
    xalign 0.5
цвета фона ставьте разные и тогда увидите где и что у вас упирается, поскольку align работает в коробке от стороны до стороны, а у вас она маленькая (по размеру элементов)
Сообщение отредактировал dmit - Воскресенье, 15/Дек/2019, 17:51
планета FOREVER!!!      Unkenbro team
Поиск: