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

Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Помощь по Ren'Py (Вопрос\Ответ)

Admin

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

СОНЦЕ

#436
Цитата stop_control ()
А можно ли назначить маску прозрачности видео?
Или контейнеру в котором лежит видео.

предусмотрено прямо в параметрах назначения видео
Код
image eileen movie = Movie(channel="eileen", play="eileen_movie.webm", mask="eileen_mask.webm")

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

UPD:Да, можно спокойно назначать маску прозрачности для видео, если его определить вышеуказаным образом, то это обычный дисплеябль, и его можно сунуть в AlphaMask() и назначить маской любой другой дисплеябль.
Сообщение отредактировал СОНЦЕ - Вторник, 03/Окт/2017, 20:24

stop_control

#437
СОНЦЕ, пасиб.
Буду упрощать.

Надо пробовать спрайт в движение вставить.
Сообщение отредактировал stop_control - Вторник, 03/Окт/2017, 21:01
«Иди пожалуйся своей мамочке»

AngelGrove

#438
Всем привет. Столкнулся с проблемой...
Суть в том, что мне надо, что бы при не достаточном количестве очков, нельзя было выбрать вариант ответа. Я всё сделал, но проблема в том, что вариант просто исчезал, а мне нужно, что бы он оставался, но был не активен...



Кто поможет ? cry
Ты будешь моим братиком?

mrWebster

#439
AngelGrove, сначала идем в файл опций и находим там настройки choice скрина.
Вот так должно выглядеть его определение:
Код
screen choice(items):
    style_prefix "choice"

    vbox:
        for i in items:
            if i.caption[0] == ' ': # внутри кавычек пробел!
                textbutton i.caption[1:] action None
            else:
                textbutton i.caption action i.action

Что это значит? Программа будет проверять текст выбора и, если там обнаруживается пробел в начале, то действие будет None. То есть, действия не будет вовсе. Теперь, если текст выбора содержит пробел в начале, то его нельзя будет выбрать.
Далее, скорее всего, нужно будет задать стиль для этих кнопок. Идем ниже в style choice_button и добавляем, соответственно, стиль для "нечувствительных" кнопок:
Код
insensitive_background Frame ("gui/button/choice_lock_background.png",0,0)
selected_insensitive_background Frame ("gui/button/choice_lock_background.png",0,0)

Потом в строке menu нужно просто сделать две версии одного и того же выбора, один с пробелом в начале. Выводить их по некоторому условию. Все
Если что-то из этого кода будет работать криво, то пишите. Я мог в чем-то ошибиться или забыть указать.
Сообщение отредактировал mrWebster - Среда, 01/Ноя/2017, 17:05
Добро пожаловать во Мрак!

GCStudio

#440
Сложный вопрос, касающийся нового gui. Точнее, того, как в нем реализован базовый скрин say.

В старом gui скрин quick_menu был интегрирован в скрин say, и вызывался вместе с ним. Все были довольны.
В новом gui скрин quick_menu вызывается отдельно. Пока он представлен тонкой полоской текстовых кнопок в самом низу экрана то, что он активен всегда, особо не напрягает. Напрягает, когда его делаешь в виде imagebuttons и вписываешь в интерфейс. Отключать каждый раз, когда не нужен, неудобно.
Если его задействовать через use screen quick_menu из скрина say, то все работает нормально.... А, нет. Тут мы подходим ко второй проблеме.
В старом gui при использовании вывода текста от лица специальных персонажей centered и extend все отображалось корректно.
В новом есть косяки. При использовании centered на короткое время появляется, а потом исчезает окно say... При этом скрин quick_menu, вызываемый со скрина say не исчезает.
При использовании extend окно скрина say исчезает на время смены текста, а потом появляется снова! Так что визуально возникает ощущение, что текст рвется.
В общем, вопрос такой:
Как в новом gui заставить себя say вести адекватно, чтобы не было указанных проблем?

Ikuku

#441
GCStudio, вы уже на 99.13, или еще на двенадцатке? Попробуйте проверить, не мешает ли say-скрину что-то еще в настройках вашего проекта. Мной только что был взят свежесозданный, с нулевыми настройками, на 99.12 и 99.13 версиях, с ним произведены следующие действия:

1. По вашему методу quick_menu всунут в say с использованием use (при этом закомментирована строчка config.overlay_screens.append("quick_menu"))
2. В options.rpy строка define config.window = "auto" поменяна на define config.window = "hide" (для проверки функционирования связи say-quick_menu на pause)
3. В стартовый лейбл вписано следующее:
Код
label start:
    "Hello, I am screen."
    pause
    "Lalala."

    e "i am totally hiding something... "
    extend "like this text, for instance!"

    centered "And I am a centered text."

    "End test."

    return

В результате теста происходит следующее: во всех стандартных диалоговых строчках say и quick_menu дружат как положено. На pause экран say исчезает вместе с меню (об этом позаботился конфиг). На extend - say и меню стоят на месте, не дергаясь. На centered - экран say остается на экране, как и положено (и меню тоже), но вот window (и подложка вместе с ним!) исчезает, потому что так работает функционал centered (см. доки, "shown outside any window").
Т.е. технически, связка say и меню через use будет рабочим аналогом старого гуи, то, что вам нужно.

Из чего я могу предположить, что либо вы стали обладателем редкого бага (для 99.13), либо в коде что-то еще провоцирует мерцание (на каждой user interaction, скорее всего). Попробуйте запустить чистый проект, и проверить на нем.

GCStudio

#443
Поправка по поводу extend. Не само окно исчезает. Исчезает текст из окна на время смены картинки через dissolve. Что и вызывает эффект прерывания текста и показа его заново. Если картинку менять без перехода, то все нормально.

Ikuku

#444
GCStudio, а, против этого попробуйте вместо with dissolve вот такую конструкцию: $ renpy.transition(dissolve, layer = "master")
Это, конечно, костыльное решение, но помогает - собсно, диссолвит только слой с картинками, а остальные не трогает.

GCStudio

#445
Ikuku, да, так работать будет, и вообще полезная подсказка. Но хотелось бы именно поведение экрана say нормализовать. Вообще, я недоумеваю, что подвигло Тома сделать в новом интерфейсе именно так.

AngelGrove

#447
mrWebster, прошу прощения, но я не совсем понял, как запихнуть это в menu... Вот у меня такое меню, как заставит его работать?



bad
Сообщение отредактировал AngelGrove - Четверг, 02/Ноя/2017, 21:57
Ты будешь моим братиком?

mrWebster

#448
AngelGrove, напомню, что если в начале текста выбора есть пробел, то этот вариант считается заблокированным (по крайней мере, в нашем случае). Итак, положим, некий благородный джентльмен из подворотни соизволил попросить у нас телефон на неопределенный срок. Положим, что у нас может быть пистолет. А может и не быть! Пусть за его наличие отвечает булева переменная have_gun. Теперь создаем простенькое меню:
Код

menu:
...."Соизвольте принять это замечательное устройство, милсдарь":
........pass
...."Пожалуй, я лучше подарю вам сюрприз из свинца!" if have_gun: ## доступный выбор, нет пробела в самом начале
........<Тело выбора>
...." Пожалуй, я лучше подарю вам сюрприз из свинца!" if not have_gun: ## заблокированный выбор, здесь перед "Пожалуй" стоит пробел
........<Тело выбора>

В таком духе. Должно работать.
Добро пожаловать во Мрак!

AngelGrove

#450
И вновь я и опять проблема... bad Мне надо сделать так, что бы при нажатии на кнопку (imagebuttom) отображался экран, но полностью скрывался интерфейс и оставался один лишь фон (ибо всплывающий экран на прозрачном фоне).

Попробовал сделать через action [Show ("name",_layer="name"), Hideinterface()] с переносом экрана на отдельный слой - всё получилось, но как закрыть экран и вернуть всё как было до нажатия? cry Пробовал [Hide ("name"), Return()] - не вышло...
Сообщение отредактировал AngelGrove - Вторник, 14/Ноя/2017, 13:05
Ты будешь моим братиком?
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Ren'Py (Вопрос\Ответ)
Поиск: