Kitobni o'qish: «Python для детей. Анимация с черепашьей графикой», sahifa 6

Shrift:

Особенности анимации с большим количеством спрайт-файлов

В примерах, которые показаны ниже, используется большое количество спрайтов изображений. Все статические спрайты получены из анимационных файлов с расширением gif. Каждый такой файл может содержать десятки а иногда и сотни статических кадров, и конечно вводить в программу каждый статический файл крайне неудобно. Для ускорения ввода таких файлов в программу Python можно воспользоваться специальной программой, преобразующей gif анимационный файл в набор статических перенумерованных в определенном порядке файлов, каждый из которых имеет такое же расширение gif , пригодное для использования в основной программе. Две возможные программы для ковертирования анимационного изображения в набор статических файлов показаны в таблице 30. Для того, чтобы воспользоваться показанными программами необходимо проинсталировать на компьютер в среду Python библиотеку PIL, которая имеется в свободном интернете. С левой стороны показана программа, в которой не нужно задавать количество кадров gif файла, с правой стороны – программа, в которой необходимо задать количество кадров пробразуемого файла. Т.е., в первом случае количество кадров-изображений(frames) определяется исходным файлом, во втором случае этим количеством можно варьировать. Как в левой так и в правой программе строка с пометкой ! задает исходный анимационный файл с расширением gif, строки с пометкой !! определяют статические gif файлы.

Таблица 30


Переидем теперь к рассмотрению конкретных примеров.


Летающий орел

Сценарий представленной ниже анимации заключается в том, что орел взмахивая крыльями пролетает через весь экран справа налево и исчезая появляется вновь с правой стороны. Первоначально в Интернете был найден анимационный файл орла, который, как оказалось имеет 21 статический кадр. Кадры отличаются друг от друга положением крыльев орла. Используя показанную выше программу(слева), мы преобразовали указанный файл в статические перенумерованные файлы по количеству, равному 21 и разместили их в фолдере(папке) вместе с основным файлом Python программы. В таблице 31 показаны коды полученной программы. Коды между строками 1 и 2 вводят в программу с помощью списка статические изображения орла. Коды между линиями 3 и 5 задают основной цикл движения орла, коды между линиями 4 и 5 дают возможность перебирать статические изображения орла, создавая эффект анимации со взмахами крыльев. В правой части таблицы показаны два статических кадра полученной анимации.

Таблица 31



Файлы изображений, используемые в этой программе могут быть скачаны с сайта:

https://github.com/victenna/Eagle-Motion

Aquarium

Еще один пример анимации с большим количаством статических спрайт-кадров показан в таблице 32: аквариум с водой и рыбками. Вода в аквариуме во время анимации находится в постоянном движении. Для создания этой анимации было использовано 74 статических кадров воды, которые получены из gif файла, с последующей раскадровкой с использованием программы превращения gif анимационного файла.

Коротко о структуре программы. Статические файлы с изображениями воды записаны в список AQ[]. Этот список первоначально пуст, т. е. в нем нет ни одного файла. Элементами списка становятся файлы с расширением gif, которыми пополняется список с помощью кодов, расположенных между линиями 1 и 2. Названиями файлов являются цифры, начиная от 0 и кончая цифрой 73, всего 74 файла. Все файлы, как было указано, имеют расширение gif. Файл с движущейся водой первоначально был найден в Интернете в виде анимационного gif файла. Затем с помощью программы, представленной в Таблице 30, он был преобразован в набор из 74 файлов, каждый из которых также имеет расширение gif. Между линиями 2 и 3 расположены файлы с изображением рыбы, плавающей в аквариуме. Основные коды, определяющие движение воды и рыбы расположены между линиями 4 и 5. Файлы изображений, используемые в этой программе могут быть скачаны с сайта:

https://github.com/victenna/Aquarium-with-water-waves


Видео с результами программы можно посмотреть по адресу


https://youtu.be/XeTwY9bwFLk


Таблица 32


Анимация с управлением от кнопки компьютерной мыши

Порхающая бабочка с машущими крыльями

Код и несколько статических кадров предлагаемой анимации представлены в Таблице 33.

Таблица 33



Для создания этой анимации мы используем управляющие кнопки компьютерной мыши. В нашем сценарии бабочка летает от одного места экрана к другому по клику левой кнопки компьютерной мышки. Наведя указатель мышки на желаемую точку экрана и кликнув кнопкой мышки, мы увидим как бабочка, помахивая крыльями перелетает в указанную нами точку. Управление анимацией с помощью кликов кнопки мышки возможно при использовании функции onclick() черепашьей библиотеки языка Питон. Рассмотрим более подробно коды программы. Строки между номерами 1 и 2 задают список файлов изображений 6-и цветков, которые будут размещены в окне экрана компьютера. Между цифрами 2 и 3 находятся коды, которые вводят изображения цветков в программу и устанавливают их в определенные координатные позиции на экране. Коды между номерами 3 и 4 вводят в программу с помощью списка файлы с изображением бабочки с порхающими крыльями. Таких файлов 18. Они отличаются друг от друга положением крыльев, создавая имитацию полета со взмахиванием крыльев. Обьект бабочка названа именем t и в бесконечном цикле while True по команде onclick() перелетает в желаемую точку. Желаемая точка на экране выбирается указателем мышки с последующим кликом левой кнопкой компьютерной мышки. 18 файлов бабочки с машущими крыльями было выбрано тем же методом, как и в примере, описанном в Таблице 32.

Файлы изображений, используемые в этой программе могут быть скачаны с сайта:

https://github.com/victenna/Flowers-and-Butterfly

Видео файл с полученной анимацией можно посмотреть по адресу:

https://youtu.be/tDESlsOs_0Y

28. Вертолет с парашютистами

Следующей анимацией, которую мы здесь покажем является полет вертолета с парашютистами. Во время полета по щелчку левой кнопки мышки с вертолета спускается парашютист. Программа также, как и предыдущая, использует функцию черепащьей библиотеки для управления кнопками компьютерной мышки onclick(). В таблицах 34-1 и 34-2 показан скрипт программы, с правой стороны показано несколько отдельных кадров анимации.


Таблица 34-1



Таблица 34-2(продолжение Таблицы 34-1)



Коротко обсудим основные блоки представленной программы. Коды, расположенные между линиями 1 и 2 вводят в программу файлы изображений вертолета и 5-и парашютистов. Функция между линиями 2 и 3 определяет движение парашютистов от вертолета к земле. Обращение к функции производится в основном цикле, коды которого расположены между линиями 6 и 8. Между линиями 3 и 4 расположены коды, которые заполняют список файлами спрайтов парашютистов. Между линиями 4 и 5 находятся коды, которые, с использованием функции <up_down(step):> определяют подьем вертолета. Основной цикл, задающий движение вертолета вдоль горизонта, определяется кодами между линиями 6 и 8. Внутри этого цикла имеется функция < def h(x,y): > , которая по щелчку левой кнопки мышки показывает анимацию парашютиста спускающегося на землю.

Файлы изображений, используемые в этой программе могут быть скачаны с сайта:

https://github.com/victenna/Helicopter

Видео файл с полученной анимацией можно посмотреть по адресу:

https://youtu.be/5P104dh_1cU

Yosh cheklamasi:
12+
Litresda chiqarilgan sana:
05 avgust 2020
Yozilgan sana:
2020
Hajm:
61 Sahifa 52 illyustratsiayalar
Mualliflik huquqi egasi:
Автор
Формат скачивания:
epub, fb2, fb3, ios.epub, mobi, pdf, txt, zip

Ushbu kitob bilan o'qiladi