Классы, ​спрайты 
и их свойства

Попробуйте пройти все 4 уровня в этой игре! Придет время, и мы познакомимся с ее внутренним устройством.

Игра GoldMiner, в которой использовано большинство программных возможностей среды Scratch.
Для создания Web-прложения игры, работающей как в онлайн, так и на отдельном компьютере, я использовал редактор TurboWarp, который переводит игры, созданные в Scratch на язык Javascript, после чего они работают автономно в любом браузере, независимо от среды Scratch.

Что такое спрайт?

Давайте отвлечемся от создания игр, чтобы потом вернуться к ним уже с багажом новых знаний.  И когда мы перейдем к программированию на Python, вам очень понадобятся эти знания.   

Пришло время остановиться и поразмыслить над тем, что мы уже сделали!  И в первую очередь мы поговорим о спрайтах.
В современном компьютерном мире спрайт - это графический символ, изображение или же ряд изображений, которые могут быть использованы для создания анимации.  Но это довольно общее понятие, которое в каждом конкретном случае может быть реализовано по разному.
Если говорить о спрайтах в Scratch, то здесь лучше всего подходит понятие спрайта как реализации некоей идеи, которую вы сами же и придумали.
У спрайта есть свойства. Когда вы выбрали в качестве идеи мяч, то у него могло быть несколько цветных "костюмов". 
Костюм - это свойство, которое реализуется с помощью разных изображений.
Вторым свойством спрайта мяча был его размер, который мы уменьшили до 70%.
Кроме того, к свойствам можно отнести также координаты мяча по осям х и y, а также направление, то есть угол, определяющий, в какую сторону мяч будет двигаться.
В руководствах по программированию свойства также называют атрибутами.
То же самое можно сказать и о спрайте планки. Её свойства (атрибуты) - это форма, размер и цвет, а также местоположение на игровом поле.
Помимо свойств у спрайта есть определенные функции, которые он выполняет в игре. Как вы помните, спрайт мяча "идет" 7 шагов и отталкивается от границ игрового поля. Кроме того, мы добавили к его поведению еще и поворот вокруг своей оси на случайный угол от 180 до 245 градусов, когда он соприкасается с планкой. При этом мяч должен издавать выбранный нами звук. Все это и есть функции мяча .
Функции в программировании называются методами, о них мы поговорим позже.

Панель инструментов

  • На Панели инструментов показаны значки секций, в которых содержатся атрибуты и методы. Как я уже говорил, каждая секция имеет свой цвет.
  • В голубой секции - Движение собраны методы, управляющие поведением спрайта.
  • Секция Внешний вид - это прежде всего атрибуты: цвет и костюмы. Тем не менее в этой секции есть методы, которые управляют не поведением спрайта, а его атрибутами и такие методы, как "говорить-думать".
  • В секции Звук собраны методы управления звуковыми эффектами.
  • В секции События - методы взаимодействия спрайтов с внешними устройствами, такими как клавиатура, мышь, звуковая карта и пр.

Об остальных секциях Панели инструментов я расскажу позже, а пока что давайте поговорим об одном из самых главных понятий программирования - о классах.

Что такое класс?

Итак, если о спрайт - это   реализация  некоей идеи , которую вы сами придумали, то класс - это сама идея .
Спрайты - это объекты класса. 

Идея класса в Scratch - это огромный многофункциональный "цех" по созданию самых разных объектов и наделить их самыми разнообразными свойствами.
Этот класс называется SPRITE. И когда вы создаете новые объекты этого класса, то Scratch "по умолчанию" присваивает им имена "Спрайт 1", "Спрайт 2" и т.д. 

Вторым классом, с ограниченным набором свойств  является класс BACKDROP . Он предназначен для создания фона игры. 
Объекты этого класса невозможно двигать, и возможностей изменять их внешний вид также меньше по сравнению с классом спрайтов.
Мы его использовали для создания черного фона, хотя, в принципе, можно вообще обойтись без него, а создавать фоны как объекты класса  SPRITE. Это уже зависит от желания самого программиста.

Виды спрайтов

  • Самый простой спрайт - это одиночное изображение. Мы уже работали с такими спрайтами в игре: мяч, планка и препятствие. Эти спрайты "облачены" в свой единственный костюм, который не меняется на всем протяжении игры.
  • Второй вид спрайтов имеет больше одного костюма. Таким  спрайтом были надписи, сообщавшие о победе и о поражении: "You win" и "Game over".  Костюмы таких спрайтов меняются в зависимости от событий в игре, или же в результате действий игрока. Еще один пример - это изменение костюма кнопок в игре GoldMiner (см. здесь). 
  • Третий вид - это анимированные спрайты, которые наиболее часто используются при создании игр.
  • Создание анимированных спрайтов - дело непростое. Некоторые возможности имеются в самой среде Scratch, но для более профессиональной анимации нужно использовать совсем другие инструменты. Но об этом - немного позже, а сейчас я хочу познакомить вас с созданием анимированного спрайта непосредственно в ​среде Scratch.

Анимация спрайта в Scratch

  • На рисунке вы видите четыре костюма летучей мыши. Это один из спрайтов, который создатели Scratch уже подготовили для анимации.
  • Если мы будем последовательно, один за другим, менять на экране эти костюмы, то мышь начнет махать крыльями и открывать рот. 
  • Так выглядит редактор костюмов после загрузки в него четырех спрайтов: Bat-a, Bat-b, Bat-c и Bat-d из библиотеки спрайтов Scratch.  
  • Простой код, который управляет анимацией спрайта совы. 
  • Чтобы анимация выглядела более плавной, можно использовать команду ждать, задав ей нужное число долей секунды.

Анимация в движении

  • Откроем новый файл проекта и удалим спрайт Кота.
  • Жмем на кнопку Выбрать фон.
  • С помощью увеличительного стекла откроем окно Выбрать фон.
  • Прокрутим окно и выберем картинку-фон Night City With...

 Спрайты Scratch​, готовые к анимации

  • В библиотеке Выбора костюмов есть два вида спрайтов. Первый - это одиночные изображения, в ряде случаев представленные в нескольких позах (как, к примеру, костюмы совы), а второй - это составной костюм, в который уже входят несколько изображений, предназначенных для анимации.
  • Мы уже видели пример такого костюма - мяч, когда создавали нашу первую игру. Тогда мы оставили лишь один из его костюмов, удалив остальные.
  • Но сейчас нам понадобится именно составной ​костюм - девочка Avery Walk из раздела Люди
  • То, что этот костюм уже готов для анимации, легко проверить, подведя к нему мышку: картинка "оживает". 
  • Когда вы создадите новый спрайт и загрузите в него этот костюм, то в окне редактора Костюмов, на боковой панели появятся четыре изображения девочки. Их мы и будем анимировать.
  • Этот несложный код устанавливает спрайт в исходную позицию, а затем, в течение 10 итераций изменяет костюм и передвигает спрайт вправо на 40 шагов.

 ​Создание собственного анимированного спрайта

Как я уже говорил вам, спрайты -это не только объекты Scratch. Спрайтами   также называют серию изображений, предназначенных для создания анимации. 
В Интернете можно найти множество готовых спрайтов. Некоторые из них являются условно-бесплатными, а за другие требуется небольшая плата. 
Вы можете загрузить такие изображения в редактор костюмов Scratch и создать из них неплохую анимацию.

Эти четыре человечка как раз и есть пример такого спрайта, который я нашел в Интернете и немного изменил его детали. Вы уже видели его в игре GoldMiner (см. здесь). Правда, там у него было больше костюмов.
Но для нашей цели на первых порах будет достаточно этих четырех.

  • Нажмите на изображение правой кнопкой мыши и откройте его в отдельной вкладке, а затем скачайте на свой компьютер.
  • Откройте среду Scratch и удалите спрайт Кота.
  • С помощью кнопки Нарисовать создайте новый спрайт.
  • В редакторе костюмов выберите Загрузить костюм и загрузите в него скачанный файл.
  • В этом коротком видео показана техника создания анимированного спрайта из загруженного изображения.

 Как создать реалистичную анимацию в Scratch

  • Этот симпатичный маленький монстр создан в программе Cartoon Animator. Она позволяет сохранять анимированный спрайт в виде отдельных кадров - файлов в формате png
  • Последовательность этих кадров может быть загружена в Scratch и использована для создания анимированного персонажа. Им можно управлять с помощью кнопок в верхней части экрана.
  • Если вы хотите научиться работать с Cartoon Animator, посмотрите мои учебные видео в YouTube.