Advertisement
NyashniyVladya

RenPy. Полное прослушивание трека.

Sep 30th, 2017
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1.  
  2. init python:
  3.  
  4.     class __MusicInteract(renpy.Displayable):
  5.  
  6.         __author__ = "Vladya"
  7.  
  8.         def __init__(self, filenames, channel="music", *music_ar, **music_kw):
  9.  
  10.             super(__MusicInteract, self).__init__()
  11.             self.channel = channel
  12.             self.music_data = {
  13.                 "args": [filenames, channel] + list(music_ar),
  14.                 "kwargs": music_kw
  15.             }
  16.             self.__start_interact = False
  17.  
  18.         def start_play(self):
  19.             renpy.music.play(
  20.                 *self.music_data["args"],
  21.                 **self.music_data["kwargs"]
  22.             )
  23.             self.__start_interact = True
  24.             return ui.interact()
  25.  
  26.         def render(self, width, height, st, at):
  27.             if self.__start_interact:
  28.                 if not renpy.music.is_playing(self.channel):
  29.                     renpy.end_interaction(st)
  30.  
  31.             renpy.redraw(self, 0)
  32.             return renpy.Render(1, 1)
  33.  
  34.     def play_interact(*args, **kwargs):
  35.         u"""
  36.        Передавать аргументы, как обычному 'renpy.music.play'.
  37.        Управление вернётся игроку, как только закончится аудиофайл.
  38.        """
  39.         _music_object = __MusicInteract(*args, **kwargs)
  40.         renpy.show("musicInteractObject", what=_music_object)
  41.         play_time = _music_object.start_play()
  42.         renpy.hide("musicInteractObject")
  43.         return play_time
  44.  
  45.  
  46. label start:
  47.     $ play_interact("sound/file123.ogg", loop=False)
  48.     "Конец песни."
  49.     return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement