60 Трансформации в Renpy (transform)
Система трансформаций (transform) позволяет манипулировать изображениями и спрайтами. С их помощью можно перемещать, вращать и масштабировать. В предыдущем уроке мы создали анимацию шагающего на одном месте персонажа. Теперь, с помощью трансформаций, он сможет перемещаться по экрану.
При записи экрана программа захватывает с низким ФПС. В игре анимация выглядит более плавной.
Для создания определённой трансформации необходимо указать ключевое слово transform и придумать подходящее название. Затем, внутри трансформации нужно описать порядок действий. Где начинается анимация, сколько по времени она должна длиться, и где заканчивается.
Команда linear отвечает за плавное и равномерное перемещение объекта. Вместо неё можно указывать другие варианты, которые воспроизводят анимацию немного иначе. Например, медленно двигают спрайт вначале, и ускоряют к концу анимации.
ease - воспроизводит с небольшим замедлением, затем ускоряет анимацию, а к концу снова замедляет.
ease_back - на старте спрайт откатывается назад, словно для разгона, а затем движется в указанном направлении
ease_bounce - двигается с отскоками назад
ease_circ - похож на ease, но с более резким ускорением
ease_elastic - эффект резинки
easein_expo - экспоненциальное ускорение
easein_quad - квадратичное ускорение
easein_quart - быстрое движение, с замедлением в конце
ease_bounce - двигается с отскоками назад
ease_circ - похож на ease, но с более резким ускорением
ease_elastic - эффект резинки
easein_expo - экспоненциальное ускорение
easein_quad - квадратичное ускорение
easein_quart - быстрое движение, с замедлением в конце
Для понимания работы каждого из эффектов, замените ими поочерёдно стандартную команду linear, и посмотрите как это выглядит в игре.
Помимо движения от одной координаты к другой, можно вращать объект, масштабировать, блюрить и делать его прозрачным.
rotate - вращает объект. Необходимо указать стартовый и конечный угол наклона.
zoom - позволяет масштабировать объекты. По умолчанию все спрайты и изображения отображаются с параметром 1.0 (размер 100%). Можно увеличивать, указав большее значение или уменьшать, указывая меньшее.
zoom - позволяет масштабировать объекты. По умолчанию все спрайты и изображения отображаются с параметром 1.0 (размер 100%). Можно увеличивать, указав большее значение или уменьшать, указывая меньшее.
alpha - Контролирует прозрачность изображения. 0.0 - полностью прозрачное изображение, 1.0 - полностью НЕ прозрачное. С этим эффектом работает стандартный dissolve, когда плавно отображает или скрывает объекты. Например, можно реализовать мигание спрайта или исчезновение, как с dissolve.
blur - размывает изображение или спрайт
xpan, ypan - позволяют создать эффект движущегося фона по указанной оси. Необходимо указать стартовую и конечную точку на изображении, которые будут панорамироваться. Также важно, чтобы само изображения было зациклено, чтобы при его прокручивании не было видно шва между началом и концом изображения.
Если наложить поверх спрайт космического корабля, получится эффект его движения в космосе.
Также панорамирование часто используется в качестве анимированного задника, когда необходимо имитировать вид из движущегося окна автомобиля и похожих ситуациях.
xtile, ytile - позволяет копировать объекты по осям х, y
Разные трансформации можно комбинировать между собой, создавая более сложные анимации.
Также есть оператор block, который позволяет разбивать анимации на отдельные блоки, внутри одной трансформации. Это может быть полезно, когда две и более анимации необходимо разделить, чтобы они работали без привязки друг к другу.
Оператор parallel - позволяет запускать несколько блоков параллельно.
Оператор choice знаком по предыдущему уроку. С его помощью можно рандомизировать анимацию.
Оператор on позволяет запускать анимацию для кнопок при наведении и снятии курсора с них.
***
Код из урока:
rpy
transformation.rpy4.40 Kb
Изображения из урока:
rar
image_ex.rar3.09 Mb
***
Предыдущий урок:
In bundle
renpy
разработка игр
программирование
визуальная новелла
туториалы ренпай
гайды ренпи