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

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

Admin

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

KripWorland

#571
СОНЦЕ, К сожалению не совсем подходящий вариант, т.к. текст в кнопках может быть как в одну строчку ("Уйти" например), так и содержать довольно большой текст, т.е. по высоте без прокрутки может как 5 кнопок поместиться, так и всего две, поэтому просто проверка на количество элементов но прокатит.

Пытаюсь найти что-то вроде функций определяющих разрешение объекта, используемые скажем в диспетчере объектов:
Прикрепления: 6202319.png (52.4 Kb)
Сообщение отредактировал KripWorland - Вторник, 01/Окт/2019, 10:39

СОНЦЕ

#572
... или можно взять костыль позабористей smile_16

Код
screen choice(items):
    $ rows = 0
    for i in items:
        $rows += i.caption.count('\n')
        $rows += len(i.caption) // 22
        $rows += 1
    $ ScrlAuto = 'vertical' if rows>10 else None
    style_prefix "choice"

    viewport:
        area(1410, 820, 520, 255)
        spacing -15
        scrollbars ScrlAuto
        draggable True
        mousewheel True
        arrowkeys True

        vbox id "vb1":
            xfill True
            spacing -10

            for i in items:
                button:
                    action i.action
                    background None
                    xpadding 0 ypadding 0 xmargin 0 ymargin 0
                    textbutton i.caption action i.action xpos 20 yalign .0
                    foreground "pref"
Сообщение отредактировал СОНЦЕ - Вторник, 01/Окт/2019, 15:52

KripWorland

#573
СОНЦЕ, направление создания костылей уловил, спасибо за помощь.
Жаль что некостыльного решения определения высоты объекта никто не подсказал... Ведь один и тот же текст при разном размере (если нет принудительных переносов) будет занимать разное количество строк... Вот эту бы высоту и выловить как-то, а там уже и предложенный Вами костыль будет идеален)

СОНЦЕ

#574
Цитата KripWorland ()
Вот эту бы высоту и выловить как-то, а там уже и предложенный Вами костыль будет идеален)

я нащхоль!


Код
default AutoScroll = None
default ChoiceHeight = 300 #ожидаемая сумма высот для полоски. отличается от высоты возможно из за спейсинга. возможно надо будет подкрутить

init python:       
    def GetMenuHeight(items):
        yy = 0
        output = 0
        for i in items:
            yy+=1
            widget = renpy.get_widget('choice','vbb'+str(yy))
            output+= widget.window_size[1]
        return output
        
    def ScrlAuto(items):
        global AutoScroll, ChoiceHeight    
        AutoScroll = 'vertical' if GetMenuHeight(items)>ChoiceHeight else None
        return

screen choice_clutch(items):
    timer .01 action Function(ScrlAuto,items)

screen choice(items):
    use choice_clutch(items)

    style_prefix "choice"

    viewport:
        area(1410, 820, 520, 255)
        spacing -15
        scrollbars AutoScroll
        draggable True
        mousewheel True
        arrowkeys True

        vbox id "vb1":
            xfill True
            spacing -10
            $yy = 0
            for i in items:
                $yy+=1
                button:
                    id "vbb"+str(yy)
                    action i.action
                    background None
                    xpadding 0 ypadding 0 xmargin 0 ymargin 0
                    textbutton i.caption action i.action xpos 20 yalign .0
                    foreground "pref"

lf2mr

#576
У меня вопрос по поводу локализации игры на renpy. В общем сделал локализацию одной игры, она стала двухязычная с выбором из языка из настроек, файлы локализации находились по пути game/tl/rus.. Всё прекрасно работало, но вышла новая версия той игры и автор там довольно много изменил, как сами тексты, так и их расположение. С помощью renpy-7.3.3-sdk я обновил перевод до новой версии, в файлах локализации добавилось много разных фраз как новых, так и бывших ранее в переводе. Взялся всё это переводить, после перевода небольшого текста решил протестировать, но игра тупо не видит тех новых переведенных фраз и показывает их оригинально английском виде. Стал копаться что к чему и оказалось что метки создаваемые в файлах локализации неверны и поэтому игра их не видит, пример под спойлером ниже, где я называю метками "translate rus shower_f1049d2a:". Где-то следовало изменить "shower" на другое значение(найденное в самом скрипте) и текст в игре становился локализованным, а где-то где текст повторялся в локализации достаточным было добавить новую метку "f1049d2a" и текст появлялся в игре, но в некоторых местах и изменение этих адресов "f1049d2a" не помогает.
Нашёл в сети другой инструмент для создания локализаций под названием renpy-update-tl-1.0.1, но он вообще выдает ошибку при создании локализации. Может быть есть какие другие инструменты для этого?
В общем если у кого есть дельные советы как производить локализацию апдейтов игр, то прошу не пройти мимо этого поста.
Но а самое главное что меня интересует, так это какой-то адрес из файла локализации, в моём примере это "f1049d2a". Каким образом эта метка создаётся? Можно ли использвать эту метку, чтобы найти текст в том файла на который она ссылается? Как самостоятельно сгенерировать ту метку?

progxaker

#577
lf2mr
Оригинал:
Код
# game/script.rpy <--file from which the lines are taken
translate language script_#######:  #<--string for replacing original script with translation
# n "Commented version of line from original script."
n "Translated version of line."

Перевод:
Код
# game/script.rpy <--файл откуда будут браться строки
translate language script_#######:  #<--строка из оригинала скрипта, которую заменяем переводом
# n "Закомментированная версия строки из оригинала скрипта."
n "Переведённая версия строки."

Источник: https://lemmasoft.renai.us/forums/viewtopic.php?f=51&t=43333
"Ничто не может оставаться таким же вечно. И вещи, приносящие радость и счастье, тоже. Ничто не остается неизменным." - Фурукава Нагиса, CLANNAD

KripWorland

#578
Помогите, пожалуйста, разобраться с кнопками.
В словаре  хранятся имена фонов для кнопок (без "_idle", "_hover"). Из словаря часть попадает в список, на основании которого в цикле выводятся кнопки. Проблема в том, что одно и то же изображение используется в трёх разных местах с разным масштабированием.
Подскажите, как можно сделать предварительную трансформацию, дабы использовать imagebutton либо как заставить button менять добавленное в него через add изображение в зависимости от действия.
Заранее спасибо

СОНЦЕ

#579
KripWorland,

Код
image button2:
    'button'
    zoom 1.5

image button2hover:
    'button2'
    ease .3 zoom 1.1
    ease .3 zoom 1.0
    repeat

screen testbutton:
    imagebutton idle 'button2' hover 'button2hover' action Jump('warp')

dmit

#580
KripWorland, может достаточно использовать трансформу для всех кнопок? типа:
Код
transform zoom_button:
    on idle:
        linear .1 zoom 1.0    
    on hover:
        linear .1 zoom 1.25

screen but():
    imagebutton idle "tri" action Return() at zoom_button
Сообщение отредактировал dmit - Вторник, 15/Окт/2019, 10:25
планета FOREVER!!!      Unkenbro team

KripWorland

#582
Еще такой вопрос: есть ли возможность при наведении или активации imagemap "накладывать" на нее другое изображение и как это организовать?

KripWorland

#583
Цитата KripWorland ()
Еще такой вопрос: есть ли возможность при наведении или активации imagemap "накладывать" на нее другое изображение и как это организовать?


Вопрос снимается, решил стандартным (хоть этого и не хотелось) путем создания отдельных картинок для спокойной/наведенной/активированной кнопки...
Зато возник другой вопрос: в разных локациях разное количество комнат, для комнат генерируются imagebutton следующим кодом: 
Код
imagebutton:
....name "im_but"+str(i)
....align (0.5, 0.0)
....idle room.icon
....selected_idle room.icon + " act"
....selected_hover room.icon + " act"

....selected room == current_room
....keysym 'K_'+str(i)
....focus_mask True
....action [SetVariable("current_room", room), Jump("AfterWaiting")]
....at middle_zoom


очень хочется сделать, чтобы кнопки можно было активировать не только мышью, но и нажатием на клавиатуре цифры 1-8 (максимум 8 комнат в локации). Но вот как работает keysym никак не могу разобраться...
Дайте пример с использованием "горячих" клавиш, если не затруднит.
Заранее спасибо

Решил проблему!  Вместо keysym после создания кнопки добавил 
Код
key str(i) action [SetVariable("current_room", room), Jump("AfterWaiting")]

и все заработало. Всем спасибо
Сообщение отредактировал KripWorland - Понедельник, 21/Окт/2019, 16:53

Dzenark

#584
Здравствуйте!
Вопрос такой: Как сделать видео фоном для сцены?

если для картинки мы прописываем: image pic_016  = "Images/scenes/pic_016.jpg"
для видео: image movie = "Images/scenes/anim1.mpg"- не работает пишет incorrect format
Что нужно написать вместо "image"
Поиск: