Python для детей. Анимация с черепашьей графикой - Виктор Рабинович
https://github.com/victenna/Cars-are-driven-over-the-Hill
Остановимся подробнее на описании представленных функций. Функция для построения полигонов фактически строит четырехугольники и поэтому определяется четырьмя вершинами: x1,y1; x2,y2; x3,y3; x4,y4. Кроме этого функция имеет в качестве параметров цвет прямоугольника и цвет окаймляющей его линии (в нашем случае цвет окаймляющей линии для всех четырехугольников черный). Функция для построения окружностей имеет следующие параметры: координаты точки (x,y), от которой начинаем рисовать круг, а также радиус круга r, и кроме этого цвет круга и окоймляющей его линии. Все обращения к этим функциям расположены между линиями 3 и 5. Кроме этого программа с помощью этих функций рисует и водителя.
Таблица 18-1
Таблица 18-2(продолжение Таблицы 18-1)
Таблица 18-3(продолжение Таблицы 18-2)
Движение автомобиля по окружности в вертикальной плоскости
Если все блоки, начиная с линии 6 и ниже заменить на те, что представлены ниже в таблице 19, получим иной сценарий движения автомобиля (петля Нестерова или американские горки). В этом примере с помощью черепашьей графики программы Python создаем анимацию: движение автомобиля вдоль вертикальной петли. Сама петля с окружающим пейзажем введена в окно экрана файлом изображения, выбранным из интернета. Файл изображения окна следующий: Street9(4).gif. Этот файл можно скачать по адресу:
https://github.com/victenna/Cars-are-driven-over-the-Hill
Таблица 19
Спиннер
В этом примере также, как и в предыдущем, строим полигоны для создания простого спиннера. Соответствующая программа показана в таблице 20. Строки между цифрами 1 и 2 определяют функцию для создания кругов, формирующих спиннер. В строках между цифрами 2 и 3 обращаемся к функции и задаем положение кругов и их цвета. Полигон (треугольник), являющийся основанием для спиннера, задан координатами в строках между цифрами 3 и 4. Наконец вращение самого спиннера определяется командами цикла, расположенными между цифрами 4 и 5.
Таблица 20
Спрайт анимация на основе библиотеки
Python
-
Turtle
В предыдущих разделах мы познакомились с принципами анимации, создаваемой с помощью стандарных примитивов, встроенных в библиотеку turtle. Теперь научимся создавать проекты с использованием обьектов-изображений, называемых спрайтами, при этом существенно расширив возможности анимации. Обьектами могут быть животные , люди, цветы, фрукты и т. д. Каждый спрайт представляет собой неподвижную картинку (изображение). Быстро сменяющая друг друга серия этих картинок составляет анимацию и называется спрайтовой анимацией. Создавая программу, мы заставляем спрайты пермещатюся по экрану а также взаимодействовать друг с другом, например, направление движения одного обьекта может изменяться при соприкосновении с другим обьектом либо, характер движения или цвет обьекта изменяется по команде от другого обьекта. Действия, которые выполняет спрайт, полностью зависят от написанного кода. Один проект может иметь несколько спрайт(sprite)-изображений, каждое из которых должно быть введено в программу с использованием соответствующих файлов. Изображения можно выбрать из Интернета, либо нарисовать самому, либо воспользоваться спарйтами библиотеки популярного в настоящее время языка Scratch, предназначенного для обучения детей. Библиотека языка Scratch содержит много спрайт-изображений, каждое из которых имеет несколько костюмов. Каждый из костюмов фактически является отдельным изображением, отличающимся от предыдущего таким образом, что используя все костюмы в совокупности с помощью кодов программы можно созадвать анимацию изображений. Когда студент хорошо освоился с основами языка Scratch, в котором все команды представлены в виде блоков, появляется желание создать аналогичную программу с помощью текстового языка. Приходит на помощь язык программирования Python. Язык содержит множество различных библиотек, многие из которых используются профессиональными программистами и известными компаниями для создания серьзных программ. Одной из наиболее простых библиотек языка, приспособленной для школьников 12+ и встроенной в стандартную версию языка (ее не нужно дополнительно скачивать-инстолировать), является библиотека Turtle. Большинство команд этой библиотеки идентичны блочным командам языка Scratch, и в этом ее преимущество перед другими библиотеками. Поэтому студенту, знакомому с языком Scratch нетрудно освоиться с основами языка Python. Однако, как мы видели в предыдущих разделах, библиотека Python- Turtle содержит лишь несколько стандартных изображений, которыми можно пользоваться для создания sprite-анимаций: квадрат, круг, стрелка, черепашка. Считается, что библиотека Turtle предназначена в основном для рисования геометрических фигур и анимаций с использованием shape-images этой библиотеки. Однако это не так. Простая и понятная для детей 10+ библиотека Turtle имеет в своем составе команды, позволяющие детям создавать отличные анимационные проекты, наподобие тех, которые создаются с помошью языка Scratch. Нужно лишь научиться добывать нужные нам для проекта изображения (из интернета, либо рисовать самим), научиться вводить их в программу и контролировать движения этих изображений с помощью команд библиотеки. Итак приступим.
Скольжение одиночного изображения
На первом этапе научимся передвигать единичный спрайт-изображение в заданном направлении. В качестве спрайт-изображения выберем тыквенного человечка, назовем его памкин (на английском pumpkin-тыква) . В качестве фона , на котором будет двигаться памкин, выберем пешеходный переход. Во-первых, нам надо найти и запомнить изображения памкина и фона в виде файлов в компьютере. Следует учесть, что все файлы изображений, которые используются в кодах библиотеки turtle должны иметь расширение gif. Обычно размер спрайт-изображения по горизонтали и вертикали не превышает 100-200 пикселей. Изображения фона, заполняющего экран, имеет размеры примерно 800-1200 пикселей по горизонтали и не более 750 пикселей по вертикали. Предположим, мы нашли нужное нам спрайт-изображение памкина, изображение фона и запомнили их в нужном формате(gif) в компьютере. Теперь, используя коды библиотеки turtle, создаем программу (скрипт) которая передвигает памкина вдоль горизонта на фоне изображения-улицы.
В таблице 21 показан соответствующий скрипт.
Таблица 21