Пользователи · Поиск по форуму · · Вход в аккаунт · Регистрация |
|
Форум о визуальных новеллах Для разработчиков Ren'Py Музыка в меню |
Музыка в меню |
dmit#2http://renpyfordummies.blogspot.nl/2015/07/blog-post_18.html - Музыку на паузу
планета FOREVER!!! Unkenbro team
|
dmit#4Вставте $ renpy.audio.audio.get_channel("music").pause() в конец screen load:
и $ renpy.audio.audio.get_channel("music").unpause() в конец screen say: и screen nvl: На паузу встанет канал "music" планета FOREVER!!! Unkenbro team
|
Pikener#5Хм, не помогло... И не совсем понял почему нужно ставить в конец screen load:, а не например screen save:
Вот весь код screens.rpy Код # Этот файл публично доступен. Модифицируйте его под свои сообственные экраны. ############################################################################## # Say # # Экран отображения ADV-диалога. # http://www.renpy.org/doc/html/screen_special.html#say screen say: # Умолчания для side_image и two_window default side_image = None default two_window = False # Решаем, нужен ли нам двухоконный или однооконный вариант. if not two_window: # Вариант с одним окном. window: id "window" has vbox: style "say_vbox" if who: text who id "who" text what id "what" else: # Вариант с двумя окнами. vbox: style "say_two_window_vbox" if who: window: style "say_who_window" text who: id "who" window: id "window" has vbox: style "say_vbox" text what id "what" # Если есть изображение, отобразить его над текстом. if side_image: add side_image else: add SideImage() xalign 0.0 yalign 1.0 # Использовать быстрое меню. use quick_menu $ renpy.audio.audio.get_channel("music").unpause() ############################################################################## # Choice # # Экран для отображения внутриигровых меню. # http://www.renpy.org/doc/html/screen_special.html#choice screen choice: window: style "menu_window" xalign 0.5 yalign 0.5 vbox: style "menu" spacing 2 for caption, action, chosen in items: if action: button: action action style "menu_choice_button" text caption style "menu_choice" else: text caption style "menu_caption" init -2 python: config.narrator_menu = True style.menu_window.set_parent(style.default) style.menu_choice.set_parent(style.button_text) style.menu_choice.clear() style.menu_choice_button.set_parent(style.button) style.menu_choice_button.xminimum = int(config.screen_width * 0.75) style.menu_choice_button.xmaximum = int(config.screen_width * 0.75) ############################################################################## # Input # # Экран для отображения renpy.input() # http://www.renpy.org/doc/html/screen_special.html#input screen input: window style "input_window": has vbox text prompt style "input_prompt" input id "input" style "input_text" use quick_menu ############################################################################## # Nvl # # Экран для NVL-диалога и меню. # http://www.renpy.org/doc/html/screen_special.html#nvl screen nvl: window: style "nvl_window" has vbox: style "nvl_vbox" # Отображать диалог. for who, what, who_id, what_id, window_id in dialogue: window: id window_id has hbox: spacing 10 if who is not None: text who id who_id text what id what_id # Отображать меню, если есть. if items: vbox: id "menu" for caption, action, chosen in items: if action: button: style "nvl_menu_choice_button" action action text caption style "nvl_menu_choice" else: text caption style "nvl_dialogue" add SideImage() xalign 0.0 yalign 1.0 use quick_menu $ renpy.audio.audio.get_channel("music").unpause() ############################################################################## # Main Menu # # Экран для отображения главного меню при запуске Ren'Py. # http://www.renpy.org/doc/html/screen_special.html#main-menu label main_menu: call screen main_menu label restart: call screen yesno_prompt(message=u"Точно хотите начать игру заново?", yes_action=Start(), no_action=Jump("main_menu")) screen main_menu: tag menu imagemap: ground "images/menu1.png" hover "images/menu2.png" alpha True hotspot (217, 169, 292, 287) action Jump("restart") hotspot (505, 125, 260, 236) action FileLoad(1, confirm=False, page="auto", newest=True) hotspot (374, 496, 217, 204) action ShowMenu("load") hotspot (766, 195, 230, 234) action ShowMenu("preferences1") hotspot (111, 11, 352, 66) action OpenURL("https://vk.com/brony_in_pony") hotspot (806, 479, 138, 239) action Quit(confirm=False) init -2 python: config.main_menu_music = "music/bg3.mp3" ############################################################################## # Navigation # # Экран, включаемый в другие экраны для отображения навигации и фона. # http://www.renpy.org/doc/html/screen_special.html#navigation ############################################################################## # Save, Load # # Экраны для сохранения и загрузки игры. # http://www.renpy.org/doc/html/screen_special.html#save # http://www.renpy.org/doc/html/screen_special.html#load # Ибо сохранение и загрузка очень похожи, мы совмещаем их в один экран, # file_picker. Потом мы используем его из экранов # загрузки и сохранения. screen save: tag menu imagemap: ground "images/menu1s.png" hover "images/menu2s.png" cache False hotspot (594,150,97,86) clicked FilePage(1) hotspot (594,235,92,63) clicked FilePage(2) hotspot (594,298,92,64) clicked FilePage(3) hotspot (594,362,92,64) clicked FilePage(4) hotspot (594,426,92,64) clicked FilePage(5) hotspot (594,486,95,89) clicked FilePage("auto") hotspot (138, 142, 406, 206) clicked FileSave(1): use load_save_slot(number=1) hotspot (138, 376, 406, 206) clicked FileSave(3): use load_save_slot(number=3) hotspot (738, 143, 406, 206) clicked FileSave(2): use load_save_slot(number=2) hotspot (738, 377, 406, 206) clicked FileSave(4): use load_save_slot(number=4) hotspot (175, 607, 222, 112) action ShowMenu("load") hotspot (400, 600, 240, 123) action ShowMenu("preferences") hotspot (640, 600, 303, 119) action MainMenu() hotspot (945, 610, 150, 112) action Quit(confirm=False) hotspot (1150, 5, 95, 100) action Return() screen load: tag menu imagemap: ground "images/menu1l.png" hover "images/menu2l.png" cache False hotspot (594,150,97,86) clicked FilePage(1) hotspot (594,235,92,63) clicked FilePage(2) hotspot (594,298,92,64) clicked FilePage(3) hotspot (594,362,92,64) clicked FilePage(4) hotspot (594,426,92,64) clicked FilePage(5) hotspot (594,486,95,89) clicked FilePage("auto") hotspot (138, 142, 406, 206) clicked FileLoad(1): use load_save_slot(number=1) hotspot (138, 376, 406, 206) clicked FileLoad(3): use load_save_slot(number=3) hotspot (738, 143, 406, 206) clicked FileLoad(2): use load_save_slot(number=2) hotspot (738, 377, 406, 206) clicked FileLoad(4): use load_save_slot(number=4) hotspot (175, 607, 222, 112) action ShowMenu("save") hotspot (400, 600, 240, 123) action ShowMenu("preferences") hotspot (640, 600, 303, 119) action MainMenu() hotspot (945, 610, 150, 112) action Quit(confirm=False) hotspot (1150, 5, 95, 100) action Return() $ renpy.audio.audio.get_channel("music").pause() screen load_save_slot: $ file_text = "% 2s. %s\n%s" % ( FileSlotName(number, 4), FileTime(number, empty=_("Empty Slot")), FileSaveName(number)) add FileScreenshot(number) xpos 8 ypos 8 text file_text xpos 10 ypos 15 size 30 color "#ffffff" outlines [ (2, "#302B54") ] key "save_delete" action FileDelete(number) init -2 python: config.thumbnail_width = 388 config.thumbnail_height = 188 ############################################################################## # Preferences # # Экран, позволяющий пользователю изменять настройки. # http://www.renpy.org/doc/html/screen_special.html#prefereces screen preferences: tag menu imagemap: ground "images/menu1o.png" hover "images/menu2o.png" cache False hotspot (175, 607, 222, 112) action ShowMenu("save") hotspot (400, 600, 240, 123) action ShowMenu("load") hotspot (640, 600, 303, 119) action MainMenu() hotspot (945, 610, 150, 112) action Quit(confirm=False) hotspot (898, 185, 110, 48) action Preference("display", "window") hotspot (635, 184, 239, 49) action Preference("display", "fullscreen") hotspot (1150, 5, 95, 100) action Return() # Разместить навигационные колонки в сетку шириной 3. grid 1 1: style_group "prefs" xfill True # Левая колонка. vbox: frame: style_group "pref" bar value Preference("text speed") frame: style_group "pref1" bar value Preference("auto-forward time") frame: style_group "pref1" bar value Preference("music volume") frame: style_group "pref1" bar value Preference("sound volume") init -2 python: style.pref_frame.xfill = True style.pref_frame.xmargin = 20 style.pref_frame.top_margin = 260 style.pref_frame.background = None style.pref_vbox.xfill = True style.pref_slider.xmaximum = 258 style.pref_slider.xalign = 0.65 style.pref_slider.left_bar = "images/menu_pol2.png" style.pref_slider.right_bar = "images/menu_pol1.png" style.pref_slider.ymaximum = 30 style.pref_slider.xmaximum = 258 style.pref_slider.thumb = "images/menu_bup.png" style.pref_slider.thumb_offset = 6 style.pref_slider.thumb_shadow = None style.pref1_frame.xfill = True style.pref1_frame.xmargin = 20 style.pref1_frame.top_margin = 30 style.pref1_frame.background = None style.pref1_vbox.xfill = True style.pref1_slider.xmaximum = 258 style.pref1_slider.xalign = 0.65 style.pref1_slider.left_bar = "images/menu_pol2.png" style.pref1_slider.right_bar = "images/menu_pol1.png" style.pref1_slider.ymaximum = 30 style.pref1_slider.xmaximum = 258 style.pref1_slider.thumb = "images/menu_bup.png" style.pref1_slider.thumb_offset = 6 style.pref1_slider.thumb_shadow = None screen preferences1: tag menu imagemap: ground "images/menu1o.png" hover "images/menu2o.png" cache False hotspot (175, 607, 222, 112) action ShowMenu("save") hotspot (400, 600, 240, 123) action ShowMenu("load") hotspot (640, 600, 303, 119) action MainMenu() hotspot (945, 610, 150, 112) action Quit(confirm=False) hotspot (898, 185, 110, 48) action Preference("display", "window") hotspot (635, 184, 239, 49) action Preference("display", "fullscreen") hotspot (1150, 5, 95, 100) action Return() # Разместить навигационные колонки в сетку шириной 3. grid 1 1: style_group "prefs" xfill True # Левая колонка. vbox: frame: style_group "pref" bar value Preference("text speed") frame: style_group "pref1" bar value Preference("auto-forward time") frame: style_group "pref1" bar value Preference("music volume") frame: style_group "pref1" bar value Preference("sound volume") init -2 python: style.pref_frame.xfill = True style.pref_frame.xmargin = 20 style.pref_frame.top_margin = 260 style.pref_frame.background = None style.pref_vbox.xfill = True style.pref_slider.xmaximum = 258 style.pref_slider.xalign = 0.65 style.pref_slider.left_bar = "images/menu_pol2.png" style.pref_slider.right_bar = "images/menu_pol1.png" style.pref_slider.ymaximum = 30 style.pref_slider.xmaximum = 258 style.pref_slider.thumb = "images/menu_bup.png" style.pref_slider.thumb_offset = 6 style.pref_slider.thumb_shadow = None style.pref1_frame.xfill = True style.pref1_frame.xmargin = 20 style.pref1_frame.top_margin = 30 style.pref1_frame.background = None style.pref1_vbox.xfill = True style.pref1_slider.xmaximum = 258 style.pref1_slider.xalign = 0.65 style.pref1_slider.left_bar = "images/menu_pol2.png" style.pref1_slider.right_bar = "images/menu_pol1.png" style.pref1_slider.ymaximum = 30 style.pref1_slider.xmaximum = 258 style.pref1_slider.thumb = "images/menu_bup.png" style.pref1_slider.thumb_offset = 6 style.pref1_slider.thumb_shadow = None ############################################################################## # Yes/No Prompt # # Экран, спрашивающий у пользователя вопрос да/нет. # http://www.renpy.org/doc/html/screen_special.html#yesno-prompt screen yesno_prompt: modal True window: style "gm_root" frame: style_group "yesno" xfill True xmargin .05 ypos .1 yanchor 0 ypadding .05 has vbox: xalign .5 yalign .5 spacing 30 label _(message): xalign 0.5 hbox: xalign 0.5 spacing 100 textbutton _("Да") action yes_action textbutton _("Нет") action no_action # Правый щелчок и escape отвечают "нет". key "game_menu" action no_action init -2 python: style.yesno_button.size_group = "yesno" style.yesno_label_text.text_align = 0.5 style.yesno_label_text.layout = "subtitle" ############################################################################## # Quick Menu # # Экран, входящий в экран save и дающий некоторые полезные функции screen quick_menu: imagemap: ground "images/frame_menu1.png" hover "images/frame_menu2.png" alpha False hotspot (8, 689, 34, 23) action Rollback() hotspot (1238, 689, 34, 23) action Skip() |
Pikener#6Вставте $ renpy.audio.audio.get_channel("music").pause() в конец screen load: и $ renpy.audio.audio.get_channel("music").unpause() в конец screen say: и screen nvl: На паузу встанет канал "music" Нашёл в чём была ошибка, теперь всё работает, спасибо! Однако теперь музыки в главном меню вообще нет... |
dmit#7да, странный эффект.
Вижу только один выход - не использовать паузу в канале "music". Сделать свой канал и там проигрывать фоновую музыку с паузами :) Код init: # регистрируем новый канал: $ renpy.music.register_channel("bgs", "sfx", loop=True) label start: stop music #останавливаем музыку главного меню play bgs "muz.mp3" # запускаем фоновую музыку на канале "bgs" и далее заменить паузы и унпаузы на канал "bgs" планета FOREVER!!! Unkenbro team
|
Pikener#9dmit, Вылезла новая проблема, а именно: изменение громкости.
Есть четыре канала: music, sound, bgs1 и bgs2, а в настройках громкость регулируется только у music и sound. Можно сделать так, что при изменении громкости канала music, bgs1 и bgs2 принимали такое же значение? --Всё разобрался, нужно было sfx заменить на music-- Сообщение отредактировал Pikener - Четверг, 23/Мар/2017, 01:10
|
Pikener#10dmit, Привет, извини, что снова беспокою тебя, но всё по тому же вопросу.
По определённым причинам перенёс игру на новую версию renpy, так сказать. А там меню изменено, да и вообще сам файл screens.rpy, плюс ещё файл gui.rpy теперь отвечает за некоторые настройки. Если действовать по старой схеме, то скрипт вовсе не работает. Если прописывать строки $ renpy.audio.audio.get_channel("music").pause() и $ renpy.audio.audio.get_channel("music").unpause() Не в конце, а в ином месте, то скрипт работает наполовину, т.е. на паузу ставит, а убирать: убирает на 1 сек, после чего музыка снова на паузу встаёт. |
| |||
| |||