Программирование мини-игры в программе Скретч
На свете существуют множество языков программирования, но программирование для детей проще начинать с программ, которые предполагают создание игровой ситуации с героями или объектами, которые двигаются, меняются или взаимодействуют. К таким программам относятся ПервоЛого и ЛогоМиры, а также программа Скретч (Scratch), бесплатно распространяемая для любой операционной системы. Сайт находится по адресу http://scratch.mit.edu. С января 2019 года разработчики выпустили новую версию 2.0. Она немного отличается от предыдущих версий.
В основе Scratch лежит графический язык программирования. Для того чтобы создать скрипт (программу для каждого объекта) нужно просто совместить графические блоки вместе, перетаскивая готовые блоки из левого поля в поле создания скрипта (программы).
Блоки разбиты на несколько типов:
- Движение (синий) – содержит команды перемещения объектов;
- Внешность (фиолетовый) – команды изменения внешнего вида объекта;
- Звук (малиновый) – команды управления звуком;
- Перо (темно-зеленый) – команды рисования на экране;
- События (желтый) – команды управления, контролирующие операторы;
- Управление (оранжевый) — условные операторы и операторы циклов;
- Сенсоры (голубой) – датчики, команды управления мышью, определяющие расстояние и координаты;, числа (ярко-зеленый) — операции с числами, логические операторы, вычисления, команды сравнения;
- Операторы (ярко-зеленый) – операторы для переменных.
Блок «Перо» в новой версии надо добавлять из меню «дополнительные блоки».
На уроках информатики учащиеся постепенно знакомятся с командами различных блоков и их использованием. Это позволяет на одном из уроков перейти к реализации проекта по созданию мини-игры.
Во многих компьютерных играх игровое поле представляет собой площадку, разбитую на квадраты (как шахматная доска), и требуется собрать какие-либо предметы – это могут быть яблоки, монеты, звезды или что-то другое. Для краткости будем называть эту игру «Собери» (презентация).
Для создания игры нам необходимо проделать несколько этапов:
- Создание фона – игрового поля,
- Расстановка различных предметов (объектов) на игровом поле;
- Программирование главного героя;
- Программирование собираемых объектов;
- Программирование препятствий;
- Программирование финиша (финишной кнопки).
Что такое Scratch?
Начнём с раскрытия самого главного вопроса, поставленного в заголовке этого материала — «Что такое Scratch?» Вспомните, как вы собирали блоки из набора ЛЕГО, собирая из них в итоге какую-то модель объекта или здания. Точно также происходит и здесь, только в данном случае, каждый отдельный блок выполняет вполне определенные действия, в конечном итоге приводящие к какому-то результату. Но тут количество вариаций практически бесконечно.
Если говорить кратко, то программа Scratch — это визуальная среда программирования, где в отличие от других языков программирования (где нужно писать код вручную), вы собираете код программы из блоков. Причем результат своих манипуляций вы видите сразу же, после запуска программы на экране и очень наглядно.
Однако авторы задумали Scratch не только для изучения программирования, но и для того, чтобы дети могли создавать свои творческие проекты и делиться ими с окружающими. Поэтому в Scratch можно создавать анимацию и живые открытки, рисовать мультфильмы, писать музыку, делать мультимедийные проекты и тому подобное.
Поэтому Скретч так хорошо подходит для обучения, моделирования, управления устройствами и развлечения. Для создания программных проектов Скретч имеет все необходимые средства: язык программирования, движок (интерпретатор) языка, графический редактор, систему помощи, образцы проектов, библиотеку рисунков и звуковых файлов. Все можно сделать здесь — в самой программе, и сейчас — сразу, без установки дополнительных программ.
Scratch (далее будем иногда использовать русское обозначение — Скретч) является свободно-распространяемой бесплатной программой. Поэтому его можно использовать практически везде.
Этот факт и ряд других преимуществ дают программе широкие возможности по продвижению её в народные массы. Именно поэтому она стала так популярна и востребована. Тем более она явлется отличным трамплином для плавного перехода в мир настоящих программистов. Мы вам покажем, что с помощью Скретч можно писать достаточно сложные программы, над которыми тоже нужно поломать голову.
Альтернативы
Pivot Stickfigure Animator. Бесплатная программа для разработки двумерных анимаций. В ней доступны готовые объекты, также возможно создание собственных. Объекты можно редактировать и создавать для них достаточно сложные сценарии. Анимации сохраняются в PIV или GIF формате.
NeoAxis 3D Engine. Бесплатная среда для разработки 3D проектов разной сложности. Обладает собственной графикой, моделями, шаблонами, физикой. Имеет большой набор инструментов. Поддерживает возможности рендеринга. Позволяет создавать трехмерные игры, визуализацию ПО, одиночные модели.
Видео
Краткий пример работы с обозреваемым приложением можно увидеть в данном видео. В нем автор поясняет, как заставить мультяшного котика бегать, учитывая данные кода скрипта.
Шаг 4. Добавляем цель
Теперь давайте добавим в игру цель. Для этого создадим новый спрайт, который будет взаимодействовать с главным героем.
Поскольку в библиотеке Scratch нет жемчужин, сделаем их сами в редакторе спрайтов. Также можно нарисовать новый спрайт или использовать картинку с вашего компьютера.
Когда изображения подготовлены, переходим к динамике. В нашей игре русалка будет собирать жемчуг, и каждый раз после очередной находки необходимо, чтобы новая жемчужина появлялась в случайном месте.
Это легко сделать с помощью блока go to random position.
Хотя здесь всего несколько блоков кода, их может оказаться непросто понять. Давайте шаг за шагом разберем этот код:
- Вы нажимаете зеленый флаг – игра начинается.
- После нажатия жемчужина проверяет, не коснулась (touching) ли ее русалка.
- Если это так, то жемчужина переходит на случайную позицию (random position).
- Шаги 2 и 3 будут повторяться бесконечно (forever).
Forever – цикл, повторно запускающий любой помещенный в него код, пока игра не остановится. Он гарантирует, что всякий раз, когда русалка касается жемчужины, та отреагирует. Без цикла жемчужина проверила бы это условие только один раз в начале игры.
Все! Теперь игра готова и неплохо работает, но все же чего-то не хватает.
Костюмы
Костюм представляет собой «двойника» для данного объекта, который имеет другой внешний вид. Если имеется несколько костюмов, то спрайт может их менять. В первую очередь это используется для создания эффекта анимации. Для просмотра и редактирования костюмов следует щелкнуть по закладке Костюмы (Costumes).
У данного спрайта два костюма, которые представляют разные положения спрайта и которые можно использовать для имитации хождения. Текущий костюм выделен и окружен синей рамкой. Для переключения на другой костюм следует просто щелкнуть по его криптограмме. Смена костюмов обычно происходит при выполнении скриптов, обычно с помощью блока следующий костюм.
Для создания нового костюма имеется четыре возможности:
- Нарисовать его с помощью Редактора рисования, который можно запустить кнопкой Рисовать (Paint)
- Импортировать его из каталога спрайтов (костюмов) Scratch или из графического файла: кнопка Импорт (Import). Scratch признает несколько графических форматов: JPG, BMP, PNG, GIF (включая анимированный GIF).
- Щелкнуть по кнопке Камера, если к компьютеру подсоединена веб-камера. Каждый раз при щелчке по кнопке или нажатии на пробел, делается фото, которое становится новым костюмом.
- Перетащить одну или несколько картинок с рабочего стола или из Интернета.
Каждому костюму соответствует порядковый номер (1, 2, . ) и имя. Костюмы можно переупорядочить, перетаскивая их с помощью мышки. При этом изменяются номера костюмов. Имя костюма можно изменить, введя в соответствующее поле новое значение. Щелчок по костюму правой кнопкой мыши выводит меню, в котором предлагается возможность превратить костюм в отдельный спрайт или экспортировать его в файл.
Кнопка Редактировать (Edit) дает возможность изменить или дополнить костюм с помощью Редактора рисования. Кнопка Копировать (Copy) создает копию костюма. Круглая кнопка с крестом удаляет костюм.
Организация кружка юных программистов на Scratch
К сожалению, во втором классе на группе продлённого дня Scratch так ни разу и не включили… Тогда я стал думать дальше. Это начинало напоминать крокодила Гену, который искал друзей для Чебурашки. В мультфильме друзья появились, когда начали общее дело. Мы тоже решили начать «дело» — организовать кружок Scratch. Ребенок уже ходил на рисование в молодежный клуб, к директору которого я и обратился.
Помещения, конечно же, не было, поэтому нам предложили заниматься в музыкальном классе по воскресеньям, когда там нет занятий. Так-как опыта ведения кружка у меня не было, в целях привлечения максимального количества потенциальных «друзей», занятия сделали бесплатными. Помню подозрительный взгляд директора и вопрос: «А зачем вам это надо?» Не помню, что я там мычал в ответ, но решили попробовать. Осталось набрать народ, для этого были проведены следующие мероприятия:
— объявление на стенде в клубе;
— реклама на местном форуме;
— раздача перед началом уроков в школе рекламы.
Поиск учебной литературы, подходящей для детей начальной школы, ничего не дал. Поскольку не было проектора, то я предварительно распечатал каждому по три листа — блоки скретч с описаниями.
На первое занятие пришли 8 детей 7-10 лет. Разместились, начали устанавливать Скретч — тут очень пригодились навыки Артёма по скоростной установке программы, полученные в школе. Среди пришедших детей одна девочка, у которой папа программист, уже знала как работать в Скретч. Она помогла нам показать ребятам как двигать блоки. Через 15 минут все освоились с интерфейсом и стали делать то, что написано в листочках. Как обычно, на первом уроке раздалось громогласное мяуканье. Но теперь творилось что-то невообразимое, одновременно орали 8 котов! Срочно изучили на ноутбуках кнопку уменьшения громкости. Занятие продолжалось 2 часа, дети были в восторге. Подробнее про восторги можете прочитать у Кодабры. Были пройдены основные блоки, и дети стали требовать игр. Мои объяснения, что надо немного подождать, и изучить ещё несколько блоков и координатную плоскость — не принимались. На совместном совещании с Артёмом было принято решение ускорить процесс обучения, так как все дети попались смышлёные. Изначально я планировал рассказать о координатах примерно на 5 занятии, однако без координат ни мультфильм, ни игру не сделать. Я был приятно удивлен, когда оказалось, что некоторые дети во 2-м классе уже знали, что такое координатная плоскость. Со словами: «мне папа объяснял» — дети сходу начали применять блоки с координатами.
Игру на втором занятии делать не стали, а сделали мультфильм.
Для запуска нажмите на зелёный флаг в центре экрана.
На второе занятие пришли ещё несколько новичков. Я раздал им первый урок, остальные проходили мультфильм. Быстро сделав мультик, начинали его видоизменять. Выбирали других персонажей, писали разные фразы, и все делали вид, что поняли, что такое координаты. Это я заметил через несколько занятий. Многим нравилось делать смешные игры, прикалываться и веселиться, а чтобы я не приставал со скучными объяснениями, говорили, что всё понимают. Не смотря на все мои усилия, некоторые дети координаты так до конца и не поняли. Кстати, те, кто не поняли координаты, через некоторое время кружок побросали. Остался костяк смышлёных учеников. Общая статистика после трёх полугодий обучения примерно следующая: те, кто занимаются всё это время, человек 10, это костяк. Всего ходило на занятия человек 40. Те, кто побросали — посетили примерно по 10 занятий каждый, поняли, что им это не интересно — и ушли.
Надо отметить, что у меня не хватало фантазии придумывать каждую неделю новый урок. В этом мне помогал Артём. Его хватило на два полугодия, а потом я стал придумывать сам. Это очень сложно, и детям нравились не все уроки. Я каждое занятие прошу детей придумать тему следующего занятия, за всё время они помогли мне 3-4 раза. В последнее время, в поисках вдохновения, я часто захожу на сайт scratch.mit.edu, там очень много классных примеров.
По образцу «Кодабры» попытаюсь сформулировать правила обучения.
1. Каждую минуту ребенку должно быть интересно. Если хотя бы одному не интересно, он включает постороннюю игру, или мультик на ноуте, и к нему тянутся остальные. Если ребенок заскучал, ему всегда можно показать новый прикол на Скретч, ведь это очень глубокая и мощная программа.
2. Все предложения детей по усовершенствованию игр — на конец занятия. Есть один мальчик, он не хочет делать по написанному, а сразу начинает генерировать идеи. В результате отходит от плана урока. Понаделает своих скриптов. У него ничего не работает, и он начинает отвлекать меня. А разобраться в чужом коде не всегда просто, даже если его писал 8 летний пацан.
3. Всегда иметь под рукой дополнительные задания. Некоторые дети очень смышлёные, у них сразу всё получается, а занятия длились по 2 астрономических часа. Если ребенок за час все сделает — надо дать ему ещё что-нибудь интересное.
4. Занятия дольше 1 астрономического часа проводить не следует. 40 мин, как в школе — оптимально. Дальше у детей реально ухудшается концентрация и они начинают хулиганить.
5. Берите с собой воду и печеньки. Поощрение печенькой реально работает. Я умилялся, когда это подтвердилось на практике.
Видео уроки по программированию в Scratch
Scratch – визуальная среда программирования
Scratch (Скретч) — визуальная объектно-ориентированная среда программирования для обучения школьников младших и средних классов. Название произошло от слова scratching — техники, используемой хип-хоп-диджеями, которые крутят виниловые пластинки взад-вперёд руками для того, чтобы смешивать музыкальные темы [3] .
Скретч создан как продолжение идей языка Лого и конструктора Лего. Скретч разрабатывается небольшой командой программистов для детей [4] в Массачусетском технологическом институте.
Программы на Скретче состоят из графических блоков, подписи к которым зависят от выбранного для интерфейса языка. Может быть выбран один из 50 языков интерфейса, включая русский.
Пример разработки в среде Скретч
Интерфейс программы
Для создания программ в Скретче есть все необходимые средства, а кнопки интерфейса (от англ. interface — поверхность) программы открывают к ним доступ:
Какие исполнители алгоритмов есть в Скретче?
В Скретче всего два класса исполнителей алгоритмов: сцена и спрайты.
Что такое спрайт?
Героев (движущиеся объекты) в Скретче называют по-английски – спрайтами, что в переводе значит сказочный герой, эльф, фея.
Спрайт – это графический объект, который действует на сцене проекта, выполняя разнообразные алгоритмы – сценарии.
Спрайтом может быть изображение любого реального или фантастического объекта: человека, цветка, Бабы Яги, бабочки, даже просто точки или буквы. Список всех спрайтов проекта дан в правом нижнем окне программы.
У каждого спрайта есть имя и личные вкладки скриптов, костюмов и звуков, которые открываются в центральном окне, если щелкнуть 1 раз по эскизу спрайта под сценой. Вокруг активного эскиза появляется синяя рамка.
Что такое сцена?
Сцена – содержит набор изображений, на фоне которых действуют спрайты. При включении программы автоматически создается фон сцены с именем – фон1: белый прямоугольник, имеющий 480 точек по ширине и 360 точек по высоте.
Сцена в проекте одна, но она может иметь множество изображений для фона. Чтобы отправить героев, например, в пустыню, достаточно добавить рисунок пустыни в список фонов. Фон можно нарисовать, нажав на кнопку рисовать, или взять готовый рисунок из файла с расширением JPG, BMP, PNG, GIF, нажав на кнопку импорт.
Сцена, как и спрайты, может иметь не только изображения, но и собственные звуки, а также скрипты.
Что такое фон
Фон сцены – это обычный рисунок, имеющий имя, которое можно изменить, и порядковый номер в списке фонов. Чтобы изменить внешний вид сцены, нужно добавить новые фоновые изображения. Новый фон можно нарисовать во встроенном графическом редакторе или взять готовый рисунок из файла с расширением JPG, BMP, PNG, GIF.
Как сделать скрипт?
Алгоритм создания скриптов
- В области объектов выбрать исполнителя алгоритма.
- Из палитры языка в центр сборки перенести нужные блоки, соединяя их друг с другом в скрипт.
Скрипт запускают кнопкой, расположенной над сценой, или иным способом, определенным в заголовке скрипта. В итоге программа выполнится, то есть объект произведет определенные в скрипте действия.