Пользователи · Новые посты · Правила форума · Поиск по форуму · · · Регистрация
Страница 30 из 31«1228293031»
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Rep'Py (Вопрос\Ответ)
Помощь по Rep'Py (Вопрос\Ответ)

TERNOX
Дата: Вторник, 30 Сентября 2014, 21:50 | Сообщение # 1
Администратор
Сообщений: 410
Награды: 36
Репутация: 579
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)


Я у мамы ямаман.

stop_control
Дата: Вторник, 03 Октября 2017, 17:13 | Сообщение # 436
Проверенный
Сообщений: 35
Награды: 0
Репутация: 5
Замечания: 0%
Ikuku, Проблема уже решена через уровни отображения графики, но возникло подозрение, что я просто что то не нашел...

Вопрос такой.
В ренпи можно вывести картинку и назначить ей маску прозрачности.

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

СОНЦЕ
Дата: Вторник, 03 Октября 2017, 20:35 | Сообщение # 437
Разработчик
Сообщений: 79
Награды: 16
Репутация: 49
Замечания: 0%
Цитата stop_control ()
А можно ли назначить маску прозрачности видео?
Или контейнеру в котором лежит видео.

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

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

UPD:Да, можно спокойно назначать маску прозрачности для видео, если его определить вышеуказаным образом, то это обычный дисплеябль, и его можно сунуть в AlphaMask() и назначить маской любой другой дисплеябль.


Сообщение отредактировал СОНЦЕ - Вторник, 03 Октября 2017, 21:24

stop_control
Дата: Вторник, 03 Октября 2017, 21:52 | Сообщение # 438
Проверенный
Сообщений: 35
Награды: 0
Репутация: 5
Замечания: 0%
СОНЦЕ, пасиб.
Буду упрощать.

Надо пробовать спрайт в движение вставить.


Сообщение отредактировал stop_control - Вторник, 03 Октября 2017, 22:01

AngelGrove
Дата: Среда, 01 Ноября 2017, 16:58 | Сообщение # 439
Пользователь
Сообщений: 9
Награды: 0
Репутация: 0
Замечания: 0%
Всем привет. Столкнулся с проблемой...
Суть в том, что мне надо, что бы при не достаточном количестве очков, нельзя было выбрать вариант ответа. Я всё сделал, но проблема в том, что вариант просто исчезал, а мне нужно, что бы он оставался, но был не активен...



Кто поможет ? cry


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

mrWebster
Дата: Среда, 01 Ноября 2017, 18:03 | Сообщение # 440
Проверенный
Сообщений: 162
Награды: 0
Репутация: 23
Замечания: 20%
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, 18:05

GCStudio
Дата: Среда, 01 Ноября 2017, 19:36 | Сообщение # 441
Проверенный
Сообщений: 32
Награды: 1
Репутация: 21
Замечания: 0%
Сложный вопрос, касающийся нового 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
Дата: Среда, 01 Ноября 2017, 20:36 | Сообщение # 442
Проверенный
Сообщений: 19
Награды: 1
Репутация: 49
Замечания: 0%
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
Дата: Среда, 01 Ноября 2017, 21:06 | Сообщение # 443
Проверенный
Сообщений: 32
Награды: 1
Репутация: 21
Замечания: 0%
Ikuku, достаточно давно не обновлял версию, спасибо. Обновился на 13, завтра все проверю еще раз.

GCStudio
Дата: Среда, 01 Ноября 2017, 21:15 | Сообщение # 444
Проверенный
Сообщений: 32
Награды: 1
Репутация: 21
Замечания: 0%
Поправка по поводу extend. Не само окно исчезает. Исчезает текст из окна на время смены картинки через dissolve. Что и вызывает эффект прерывания текста и показа его заново. Если картинку менять без перехода, то все нормально.

Ikuku
Дата: Среда, 01 Ноября 2017, 22:00 | Сообщение # 445
Проверенный
Сообщений: 19
Награды: 1
Репутация: 49
Замечания: 0%
GCStudio, а, против этого попробуйте вместо with dissolve вот такую конструкцию: $ renpy.transition(dissolve, layer = "master")
Это, конечно, костыльное решение, но помогает - собсно, диссолвит только слой с картинками, а остальные не трогает.

GCStudio
Дата: Четверг, 02 Ноября 2017, 07:21 | Сообщение # 446
Проверенный
Сообщений: 32
Награды: 1
Репутация: 21
Замечания: 0%
Ikuku, да, так работать будет, и вообще полезная подсказка. Но хотелось бы именно поведение экрана say нормализовать. Вообще, я недоумеваю, что подвигло Тома сделать в новом интерфейсе именно так.

AngelGrove
Дата: Четверг, 02 Ноября 2017, 21:31 | Сообщение # 447
Пользователь
Сообщений: 9
Награды: 0
Репутация: 0
Замечания: 0%
mrWebster, благодарствую funny

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

AngelGrove
Дата: Четверг, 02 Ноября 2017, 22:54 | Сообщение # 448
Пользователь
Сообщений: 9
Награды: 0
Репутация: 0
Замечания: 0%
mrWebster, прошу прощения, но я не совсем понял, как запихнуть это в menu... Вот у меня такое меню, как заставит его работать?



bad


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

Сообщение отредактировал AngelGrove - Четверг, 02 Ноября 2017, 22:57

mrWebster
Дата: Пятница, 03 Ноября 2017, 00:53 | Сообщение # 449
Проверенный
Сообщений: 162
Награды: 0
Репутация: 23
Замечания: 20%
AngelGrove, напомню, что если в начале текста выбора есть пробел, то этот вариант считается заблокированным (по крайней мере, в нашем случае). Итак, положим, некий благородный джентльмен из подворотни соизволил попросить у нас телефон на неопределенный срок. Положим, что у нас может быть пистолет. А может и не быть! Пусть за его наличие отвечает булева переменная have_gun. Теперь создаем простенькое меню:
Код

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

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


Добро пожаловать во Мрак!

AngelGrove
Дата: Пятница, 03 Ноября 2017, 17:30 | Сообщение # 450
Пользователь
Сообщений: 9
Награды: 0
Репутация: 0
Замечания: 0%
mrWebster, всё работает happy Большое спасибо. С меня причитается joke

Ты будешь моим братиком?
Форум о визуальных новеллах » Для разработчиков » Ren'Py » Помощь по Rep'Py (Вопрос\Ответ)
Страница 30 из 31«1228293031»
Поиск: