Музыкальная комната Музыка в новеллах является одним из важнейших составляющих уникальной атмосферы. И в качестве небольшого бонуса, иногда добавляют так называемую «Музыкальную комнату». В неё обычно добавляют песни, которые есть в самой игре. Но часто делают их априори закрытыми. Как только какая-то песня впервые заиграет в игре, она автоматически откроется в музыкальной комнате, если она туда добавлена.
Принцип создания музыкальный комнат примерно тот же, что и принцип создания комнат галереи.
Рассмотрим пример создания одной комнаты, с восемью добавленными в неё музыкальными композициями.
Для создания комнаты, нам необходимо: 1. Музыкальные композиции
2. Фон для комнаты.
Для начала, создадим новый скрипт для нашей комнаты. Этого делать не обязательно, но всё же, так удобней.
1.Находясь в редакторе выбрать в верхнем меню вкладку File (Файл)
2.Нажать на:
2.1. Для Editra - New Tab (Ctrl + N)
2.2. Для jEdit - Создать (N)
2.3. Для блокнота - Создать (Ctrl + N)
P.S. Лучше сразу сохраним скрипт, пусть и пустой, назвав его как вам угодно, не забыв приписать расширения для скриптов Ren'Py. К примеру, у меня это -
musicrm.rpy.
Создаём объект класса
MusicRoom Код
init python:
m = MusicRoom(fadeout = 1.0)
# я назвал просто -m-, вы же можете называть иначе, только не забыть изменить это и ниже
# fadeout - 1.0 - при переключение песен, будет срабатывать эффект затухания звука в течении секунды.
m.add("music/m1.mp3",always_unlocked=True)
# регистрируем первую песню.
## "music/m1.mp3" - расположение самой песни
### always_unlocked - при значении true, будет всегда открыта, даже если не проигрывалась непосредственно в игре.
m.add("music/m2.mp3")
# регистрируем остальные песни, она априори будут закрыты, пока не начнут проигрываться в вн.
m.add("music/m3.mp3")
m.add("music/m4.mp3")
m.add("music/m5.mp3")
m.add("music/m6.mp3")
m.add("music/m7.mp3")
m.add("music/m8.mp3")
# И так, в music room добавлено 8 песен. Теперь приступим к созданию самой комнаты.
screen msc_rm:
#...msc_rm - название вызываемой комнаты.
tag menu
# Заменяем нашу комнату главным меню, чтобы можно было вернутся в него.
## Если не работает, заменить на «tag main_menu»
add "galer/back_mr.png"
# Добавляем фоновое изображение.
# Сейчас создадим кнопки проигрывания, для каждой песни, свою. Я буду применять textbutton.
textbutton "Yourenigma - My Little Nocturne;" action m.Play("music/m1.mp3") xalign 0.5 yalign 0.2 xminimum 570
# "Yourenigma - My Little Nocturne" - название, выводимое на кнопке.
# action m.Play("music/m1.mp3") - по нажатии проигрывать m1.mp3.
# xalign 0.5 yalign 0.2 - расположение по координатам X, Y.
# xminimum 570 - установление минимальной ширины кнопки - 570 пикселей.
textbutton "Daniel Ingram – I've Got to Find a Way" action m.Play("music/m2.mp3") xalign 0.5 yalign 0.25 xminimum 570
textbutton "Daniel Ingram – Find a Pet" action m.Play("music/m3.mp3") xalign 0.5 yalign 0.3 xminimum 570
textbutton "MandoPony – I'll Be Waiting" action m.Play("music/m4.mp3") xalign 0.5 yalign 0.35 xminimum 570
textbutton "Daniel Ingram – What My Cutie Mark is Telling Me" action m.Play("music/m5.mp3") xalign 0.5 yalign 0.4 xminimum 570
textbutton "Michelle Creber – Here Comes the Sun" action m.Play("music/m6.mp3") xalign 0.5 yalign 0.45 xminimum 570
textbutton "Daniel Ingram – Raise This Barn" action m.Play("music/m7.mp3") xalign 0.5 yalign 0.5 xminimum 570
textbutton "Daniel Ingram – My Little Pony theme song." action m.Play("music/m8.mp3") xalign 0.5 yalign 0.55 xminimum 570
#Добавим кнопки управления
textbutton "Следующая ->" action m.Next() xalign 0.99 yalign 0.94 xmaximum 300
#....По нажатию будет проигрываться предыдущая песня из списка.
textbutton "<-Предыдущая" action m.Previous() xalign 0.99 yalign 0.99 xmaximum 300
#....По нажатию будет проигрываться следующая песня из списка.
textbutton "Стоп" action Stop("music") xalign 0.7 yalign 0.99
#....Останавливает проигрывающую песню.
label _("Громкость") xalign 0.4 yalign 0.95
#Создаём надпись "Громкость"
bar value Preference("music volume") xalign 0.45 yalign 0.99 xmaximum 180
#Добавляем ползунок регулировки громкости музыки.
textbutton "Главное меню" action ShowMenu("main_menu") xalign 0.01 yalign 0.99
#Кнопка, для возвращения, обратно в главное меню.
#Ниже строки, которые можно и не добавлять. Опционально.
on "replace" action m.Play("music/m1.mp3")
#Проигрывать песню m1.mp3, при входе в музыкальную комнату.
on "replaced" action Play("music", "music/main_menu.mp3")
#Проигрывание музыки после выхода из комнаты. Можно указать музыку главного меню.
P.S.S. При создании своих комнат, не забывайте регистрировать песни в музыкальную комнату
(m.add).
Теперь можно добавить кнопку в главное меню, для перехода в музыкальную комнату.
Нужно открыть
screens.rpy, и опустится до
screen main_menu Если у вас меню с кнопками добавить строку:
Код
textbutton _("Музыка") action ShowMenu("msc_rm")
"Музыка" - надпись на кнопке
action ShowMenu("msc_rm") - по клику на кнопку, переходить в комнату
msc_rm Если же меню с
ImageMap, тогда
Код
hotspot (0, 0, 0, 0) action ShowMenu("msc_rm")
Ввести координаты вашей горячей точки и вписать название вашей комнаты -
msc_rm.
Для разблокирования песен в Музыкальной комнате ничего в коде прописывать не надо. Песни автоматически разблокируются, после начала проигрывания в самой вн.
Но если же, вы хотите очистить список уже прослушанных песен, зайди в лаунчер, выберите проект и нажмите на
"Очистить постоянные данные"
Скачать musicrm.rpy без комментариев. ©Программист
Celestial Novels
Комментарии к записи: 7
m = MusicRoom(fadeout = 1.0)
m.add("music/m1.mp3",always_unlocked=True)
m.add("music/m2.mp3")
#m.add("music/m3.mp3")
#m.add("music/m4.mp3")
#m.add("music/m5.mp3")
#m.add("music/m6.mp3")
#m.add("music/m7.mp3")
#m.add("music/m8.mp3")
screen msc_rm:
#tag main_menu
tag menu
add "твой_bg.png"
textbutton "Название песни" action m.Play("music/m1.mp3") xalign 0.5 yalign 0.2 xminimum 300
textbutton "Музыка 2" action m.Play("music/m2.mp3") xalign 0.5 yalign 0.25 xminimum 300
#textbutton "Музыка 3" action m.Play("music/m3.mp3") xalign 0.5 yalign 0.3 xminimum 300
#textbutton "Музыка 423123" action m.Play("music/m4.mp3") xalign 0.5 yalign 0.35 xminimum 300
#textbutton "Музыка 5213123" action m.Play("music/m5.mp3") xalign 0.5 yalign 0.4 xminimum 300
#textbutton "Музыка 6231312321" action m.Play("music/m6.mp3") xalign 0.5 yalign 0.45 xminimum 300
#textbutton "Музыка 7" action m.Play("music/m7.mp3") xalign 0.5 yalign 0.5 xminimum 300
#textbutton "Музыка 8" action m.Play("music/m8.mp3") xalign 0.5 yalign 0.55 xminimum 300
textbutton "Следующая ->" action m.Next() xalign 0.99 yalign 0.94 xmaximum 300
textbutton "<-Предыдущая" action m.Previous() xalign 0.99 yalign 0.99 xmaximum 300
textbutton "Стоп" action Stop("music") xalign 0.7 yalign 0.99
label _("Громкость") xalign 0.4 yalign 0.95
bar value Preference("music volume") xalign 0.45 yalign 0.99 xmaximum 180
textbutton "Главное меню" action ShowMenu("main_menu") xalign 0.01 yalign 0.99
#on "replace" action m.Play("music/Evanescence-My_Heart_Is_Broken_Rock_Mix.mp3")
#on "replaced" action Play("music", "music/main_menu.mp3") #Проигрывание музыки после выхода из комнаты. Можно указать музыку главного меню.
Вот всё робит вродь)
что делать?(