▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
Увидел тейк в RenPy Help, поэтому дублирую ответ сюда.
Система автоматическая и не требует ручного показа фрейма при проигрывании музыки.
init -2 python:
__ms_meta = {
"music/SomeName.ogg": _("Какой-то Автор - И его трек"), # уберите _() если не нужен перевод названий треков
"music/Aaa2102.ogg": _("Что-то там"),
}
init -2 python:
__ms_current = None
def __ms_notifier():
global __ms_current
track = renpy.music.get_playing()
if not track or track == __ms_current:
return
if renpy.seen_audio(track): #<- Уберите это если нужно ВСЕГДА показывать нотифай
return # уже слышали — не показываем #<- Уберите это если нужно ВСЕГДА показывать нотифай
# Помечаем как услышанный
renpy.mark_audio_seen(track) #<- Уберите это если нужно ВСЕГДА показывать нотифай
track_to_label = __ms_meta.get(track)
# Шаг 2: если не найдено — используем сам путь как fallback
if track_to_label is None:
track_to_label = track
# Шаг 3: сохраняем и показываем
__ms_current = track
renpy.run(ToggleScreen("displaymusic", track_label=track_to_label))
renpy.config.interact_callbacks.append(__ms_notifier)
transform ms_fade(duration=0.5):
xalign -0.1
alpha 0.0
on show:
ease duration xalign 0.0 alpha 1.0
on hide:
ease duration xalign -0.1 alpha 0.0
screen displaymusic(track_label):
zorder 201
$ __ms_dur = 5
frame:
at ms_fade
textbutton track_label:
text_color "#fff"
align (0.5,0.5)
action ToggleScreen("displaymusic")
timer __ms_dur action ToggleScreen("displaymusic")
Пояснения:
__ms_dur — Длительность показа уведомления.
__ms_meta — Список с вашими аудио-файлами и соответствующими им названиями.
__ms_current — Определяем, играет ли сейчас музыка чтобы не выводить ничего на экран во время интеракт-коллбека, и есть ли она вообще чтобы не вызывать нотифай просто так.
renpy.config.interact_callbacks — список обратных вызовов при непосредственно интеракции с игрой.
Экран показа уведомлений можно модифицировать и видеоизменять как вам захочется.
Для работы данной системы лучше создать отдельный файл getplay.rpy и закинуть его в папку game, но вы можете его просто разместить и до лейбла старт.
Методы воспроизведения музыки не важны, хоть через play music name (как define audio.name), хоть через play music "music/name.mp3".
Личная рекомендация: музыку держать в папке music для корректной работы.
#адм_пост #готовый_код
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
» Инфо-Пост » ВП-ПОСТ » Ссылки » Бот Для Тейков »