Скролл любого, даже не бесшовного фона

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску
Sky-test.jpg

# как заскроллить с произвольной скоростью любой фон
# и при этом сделать его бесшовным?
# очень просто:
# отзеркалить и состыковать одинаковыми сторонами
# пример для движения влево
init:
    image sky = "images/sky.jpg"
    # трансформации для перемещения и отзеркаливания
    transform scroll_in(delay = 10.0):
        xpos config.screen_width xzoom -1.0
        linear delay xpos 0
        pause delay
        repeat
    transform scroll_in2(delay = 10.0):
        xpos config.screen_width
        pause delay
        linear delay xpos 0
        repeat
    transform scroll_out(delay = 10.0):
        xpos 0
        linear delay xpos -config.screen_width
        pause delay
        repeat
    transform scroll_out2(delay = 10.0):
        xpos config.screen_width
        pause delay
        xpos 0 xzoom -1.0
        linear delay xpos -config.screen_width
        repeat

init python:
    # функция объединаяет трансформации
    # выводит на экран 
    def _scroll(img, effect = None, delay = 10.0):
        renpy.show(img + "1", what = ImageReference(img), at_list = [scroll_in(delay)])
        renpy.show(img + "2", what = ImageReference(img), at_list = [scroll_out(delay)])
        renpy.show(img + "3", what = ImageReference(img), at_list = [scroll_in2(delay)])
        renpy.show(img + "4", what = ImageReference(img), at_list = [scroll_out2(delay)])
        renpy.with_statement(effect)
    def _hide(img, effect = None):
        renpy.hide(img + "1")
        renpy.hide(img + "2")
        renpy.hide(img + "3")
        renpy.hide(img + "4")
        renpy.with_statement(effect)
# всё, теперь можно в любом месте скрипта
# одной строкой отображать движущийся бесшовный фон
label start:
    scene black
    # отображаем (параметры можно не указывать)
    $ _scroll("sky", Dissolve(2.0), 15)
    pause # наслаждаемся облаками
    # а теперь прячем наши бегущие картинки
    $ _hide("sky", Dissolve(2.0))
    pause .5
    return

На главную страницу Книга рецептов Энциклопедии Ren'Py Renpy для чайников Вернуться к началу статьи