Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ) |
Помощь по Ren'Py (Вопрос\Ответ) |
ProstoiXXX#572Ubic самое простое, что приходит в голову
Код label start: "1-я фраза." "2-я фраза." call proverka # call вместо jump label proverka: "3-я фраза" "4-я фраза" "5-я фраза" return Сообщение отредактировал ProstoiXXX - Пятница, 23/Авг/2019, 20:17
|
AlienXMask#575Существуют ли примеры плееров в играх, где помимо музыки выводится анимация? Например - запустил трек а рядом анимация кассеты появляется или винилового проигрывателя? Такое возможно?
|
KripWorland#576Уважаемые знатоки. Прошу сильно не пинать или пинать только в направлении подсказок (только начинаю работать с renpy и python) Есть вот такой код для меню выбора:
Код screen choice(items): style_prefix "choice" viewport: area(1410, 820, 520, 255) spacing -15 scrollbars "vertical" 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" Вопрос: как сделать, чтобы scrollbar появлялся только тогда высота vbox выходит за границы viewport. Другими словами - если положили две кнопки с коротким текстом, то скролл не нужен, если пихнули десяток кнопок, тогда без скролла не обойтись. |
СОНЦЕ#577KripWorland, не скажу как это делать по-людски, но вот такой костыль вроде работает
Код screen choice(items): $ ScrlAuto = 'vertical' if len(items)>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, 09:50
|
KripWorland#578СОНЦЕ, К сожалению не совсем подходящий вариант, т.к. текст в кнопках может быть как в одну строчку ("Уйти" например), так и содержать довольно большой текст, т.е. по высоте без прокрутки может как 5 кнопок поместиться, так и всего две, поэтому просто проверка на количество элементов но прокатит.
Пытаюсь найти что-то вроде функций определяющих разрешение объекта, используемые скажем в диспетчере объектов: Прикрепления:
6202319.png
(52.4 Kb)
Сообщение отредактировал KripWorland - Вторник, 01/Окт/2019, 10:39
|
СОНЦЕ#579... или можно взять костыль позабористей
Код 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#580СОНЦЕ, направление создания костылей уловил, спасибо за помощь.
Жаль что некостыльного решения определения высоты объекта никто не подсказал... Ведь один и тот же текст при разном размере (если нет принудительных переносов) будет занимать разное количество строк... Вот эту бы высоту и выловить как-то, а там уже и предложенный Вами костыль будет идеален) |
СОНЦЕ#581Вот эту бы высоту и выловить как-то, а там уже и предложенный Вами костыль будет идеален) я нащхоль! Код 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#583У меня вопрос по поводу локализации игры на renpy. В общем сделал локализацию одной игры, она стала двухязычная с выбором из языка из настроек, файлы локализации находились по пути game/tl/rus.. Всё прекрасно работало, но вышла новая версия той игры и автор там довольно много изменил, как сами тексты, так и их расположение. С помощью renpy-7.3.3-sdk я обновил перевод до новой версии, в файлах локализации добавилось много разных фраз как новых, так и бывших ранее в переводе. Взялся всё это переводить, после перевода небольшого текста решил протестировать, но игра тупо не видит тех новых переведенных фраз и показывает их оригинально английском виде. Стал копаться что к чему и оказалось что метки создаваемые в файлах локализации неверны и поэтому игра их не видит, пример под спойлером ниже, где я называю метками "translate rus shower_f1049d2a:". Где-то следовало изменить "shower" на другое значение(найденное в самом скрипте) и текст в игре становился локализованным, а где-то где текст повторялся в локализации достаточным было добавить новую метку "f1049d2a" и текст появлялся в игре, но в некоторых местах и изменение этих адресов "f1049d2a" не помогает.
Нашёл в сети другой инструмент для создания локализаций под названием renpy-update-tl-1.0.1, но он вообще выдает ошибку при создании локализации. Может быть есть какие другие инструменты для этого? В общем если у кого есть дельные советы как производить локализацию апдейтов игр, то прошу не пройти мимо этого поста. Но а самое главное что меня интересует, так это какой-то адрес из файла локализации, в моём примере это "f1049d2a". Каким образом эта метка создаётся? Можно ли использвать эту метку, чтобы найти текст в том файла на который она ссылается? Как самостоятельно сгенерировать ту метку? |
progxaker#584lf2mr,
Оригинал: Код # 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#585Помогите, пожалуйста, разобраться с кнопками.
В словаре хранятся имена фонов для кнопок (без "_idle", "_hover"). Из словаря часть попадает в список, на основании которого в цикле выводятся кнопки. Проблема в том, что одно и то же изображение используется в трёх разных местах с разным масштабированием. Подскажите, как можно сделать предварительную трансформацию, дабы использовать imagebutton либо как заставить button менять добавленное в него через add изображение в зависимости от действия. Заранее спасибо |
| |||