Напоминание

Среда программирования Scratch и её роль в дополнительном образовании

Автор: Репина Елена Александровна
Должность: педагог дополнительного образования
Учебное заведение: МБ УДО "Станция юных техников" город Симферополь
Населённый пункт: Симферополь
Наименование материала: программирование на языке Scratch
Тема: Среда программирования Scratch и её роль в дополнительном образовании







Вернуться назад       Перейти в раздел





Текстовая часть публикации

СРЕДА ПРОГРАММИРОВАНИЯ SCRATCH И ЕЁ РОЛЬ В

ДОПОЛНИТЕЛЬНОМ ОБРАЗОВАНИИ

Аннотация.

В

статье

среда

визуального

программирования

Scratch

рассмотрена как технология дополнительного образования по информатике.

Разобраны типы блоков и алгоритмические структуры, координатная модель

сцены, механизмы клонов и переменных, различие растровой и векторной

графики,

работа

со

спрайтами,

костюмами

и

покадровой

анимацией,

синхронизация звука с действием. Приведён пошаговый разбор учебного проекта

со скриптами и типичные ошибки реализации. Показано, что блочное кодирование

снимает синтаксический барьер и переносит акцент на логику алгоритма и

проектную деятельность.

Ключевые слова:

Scratch, блочное программирование, дополнительное

образование, информатика, спрайт, костюм, растровая и векторная графика,

анимация, озвучивание, алгоритмические структуры

Scratch — визуальная среда блочного программирования, созданная группой

Lifelong Kindergarten в Медиалаборатории MIT. Для дополнительного образования

она ценна сочетанием низкого порога входа и высокого потолка: первый

работающий скрипт собирается за минуту, а на той же платформе строится игра с

клонами, переменными состояния и обработкой событий. Ниже среда разобрана с

инженерной точностью — по типам блоков, координатной модели, работе с

графикой, спрайтами, костюмами и звуком, с пошаговой сборкой рабочего

проекта.

Блочное кодирование: типология блоков и структуры

Программа собирается из блоков, а не из текста, и форма блока строго

определяет его роль в коде. Различают пять типов, и понимание этой типологии

ускоряет сборку в разы.

Шляпные блоки (скруглённый верх) запускают скрипт по событию: «когда

нажат флажок», «когда клавиша пробел нажата», «когда я получу сообщение».

Каждый шляпный блок — точка входа отдельного потока.

Стековые блоки

(прямоугольные, с пазами сверху и снизу) выполняют

команду: «идти 10 шагов», «сменить костюм на», «изменить x на 5». Из них

набирается тело скрипта.

Блоки-репортёры (овальные) возвращают значение и вставляются внутрь

других блоков: координата «x», «ответ», переменная, «случайное число от 1 до

10». Самостоятельно они не выполняются — они поставляют данные.

Логические блоки

(шестиугольные) возвращают «истину» или «ложь»:

«касается указателя мыши?», «клавиша нажата?», операторы сравнения и связки

«и», «или», «не». Их место — в условиях.

C-блоки

(в форме скобы) охватывают другие блоки: «повторить 10»,

«всегда», «если — то», «повторять пока не». Именно они задают алгоритмические

структуры — цикл, ветвление, ожидание [1].

Несовместимые блоки физически не стыкуются: репортёр не встанет туда, где

ждут команду, а логический блок — только в гнездо условия. Это устраняет целый

класс синтаксических ошибок и переносит внимание с формы записи на логику

алгоритма.

Три структуры покрывают основу алгоритмики.

Последовательность

блоки, выполняемые сверху вниз.

Повторение

— C-блоки «повторить N»

(счётный цикл), «всегда» (бесконечный игровой цикл, ядро любой сцены),

«повторять пока не» (цикл с условием выхода). Ветвление — «если — то» и «если

— то — иначе». Уже на этом наборе собирается нетривиальная логика.

Событийная модель отличает Scratch

от линейного сценария. Скрипты

запускаются параллельно по событиям, а связь между спрайтами строится на

сообщениях: блок «передать [сообщение]» рассылает сигнал, а «когда я получу

[сообщение]» его ловит. Вариант «передать и ждать» выполняет обработчик

синхронно — вызывающий скрипт ждёт завершения, что нужно для строгой

очерёдности (реплика — ответ — реакция).

Для тиражирования однотипных объектов служат клоны. Блок «создать клон

самого себя» порождает копию со всеми скриптами; обработчик «когда я начинаю

как клон» задаёт её поведение; «удалить этот клон» освобождает память. Клоны

— штатный механизм для пуль, врагов, падающих объектов: один спрайт-шаблон

порождает десятки независимых экземпляров.

Переменные объявляются в двух областях видимости: «для всех спрайтов»

(глобальные — общий счёт, уровень) и «только для этого спрайта» (локальные —

своя скорость, свои очки клона). Различение областей видимости — не

формальность: локальная переменная у клона существует в каждом экземпляре

отдельно, что и позволяет тысяче клонов двигаться с разной скоростью. Списки

дают массивы — для инвентаря, очереди вопросов, таблицы рекордов.

Координатная система сцены. Сцена имеет фиксированный размер 480×360

пикселей с началом координат в центре. Ось x идёт от −240 (левый край) до 240

(правый), ось y — от −180 (низ) до 180 (верх). Позиция спрайта задаётся блоками

«перейти в x: y:», «изменить x на», «плыть 1 сек в точку»; текущие координаты

доступны репортёрами «x» и «y».

Направление измеряется в градусах: 90 — вправо, 0 — вверх, −90 — влево,

180 — вниз; поворот задаётся блоками «повернуть на» и «повернуться в

направлении». Критична настройка стиля вращения спрайта: «круговой» (полный

разворот), «влево-вправо» (только отражение по горизонтали, чтобы персонаж не

вставал вверх ногами) и «не вращать» (фиксированная ориентация). Неверный

стиль

вращения

частая

причина

того,

что

герой

при

движении

переворачивается; на практике для ходячего персонажа выбирается «влево-

вправо».

Взаимное перекрытие объектов регулируется слоями: блоки «перейти на

передний план» и «перейти назад на N слоёв» определяют, кто кого закрывает, —

фон уводится назад, интерфейс выносится вперёд.

Растровая и векторная графика в редакторе. Редактор костюмов работает

в двух режимах, и выбор между ними — практическое инженерное решение.

Растр — сетка пикселей с индивидуальным цветом каждой точки. Подходит

для пиксель-арта, сложной фактуры, обработки фотографий. Ограничение

принципиально: при увеличении пиксели растягиваются, края покрываются

«лесенкой», деталь теряется. Инструменты растрового режима — карандаш, кисть

с регулируемым диаметром, заливка, ластик, выделение области.

Вектор — описание изображения линиями, кривыми Безье и фигурами через

математические параметры. Следствие — независимость от масштаба: контур

пересчитывается при любом размере и остаётся гладким. Векторные инструменты

позволяют тянуть узлы, перегибать сегменты, группировать объекты, менять

порядок наложения, править форму по опорным точкам. Для персонажей, кнопок,

геометрической графики выбирается вектор — он масштабируется без потерь и

правится локально.

Ключевая практическая деталь, которую часто упускают, — точка центра

костюма

(перекрестие в редакторе). Вокруг неё спрайт вращается и по ней

позиционируется. Если у разных костюмов одного спрайта центр смещён, при

смене костюма изображение «прыгает», а при повороте героя уводит в сторону.

Правило: все костюмы одного спрайта выравниваются по единой точке центра —

обычно по опорной части фигуры (для персонажа — низ корпуса).

Ещё одно инженерное соображение — производительность. Крупные

растровые костюмы при сотнях клонов заметно нагружают отрисовку; для

массовых объектов берут компактные векторные спрайты. Преобразование «в

растр» необратимо огрубляет вектор, поэтому исходник разумно хранить в

векторном виде и растеризовать лишь копию.

Спрайты как объекты сцены. Спрайт — управляемый объект сцены,

инкапсулирующий собственные данные (координаты, направление, размер,

видимость, локальные переменные) и поведение (прикреплённые скрипты).

Архитектурно это близко к объекту: спрайты не лезут во внутренности друг друга,

а взаимодействуют сообщениями. Такая организация вводит инкапсуляцию и

обмен сообщениями до знакомства с самими терминами.

На сцене спрайты работают параллельно: у каждого свои шляпные блоки,

свои события, своя траектория. Наблюдая одновременное исполнение десятков

скриптов, обучающийся осваивает идею многопоточности наглядно, тогда как в

текстовых языках это тема повышенной сложности [2].

Костюмы и покадровая анимация. Костюм — одно из альтернативных

изображений спрайта; переключение костюмов даёт анимацию. Механизм —

классическая покадровая смена: два костюма с разным положением ног плюс их

циклическая смена с паузой создают походку.

Практика анимации сводится к нескольким приёмам. Костюмы именуются

осмысленно (walk1, walk2, jump) — тогда к ним обращаются по имени блоком

«сменить костюм на [walk1]», а не по хрупкому номеру. Циклическую анимацию

строят на «всегда → следующий костюм → ждать 0.1»; пауза задаёт частоту: 0,1

секунды ≈ 10 кадров в секунду — плавно и без рывков. Для управляемого

перехода по состояниям (покой, бег, прыжок) костюм переключают явным именем

внутри соответствующей ветки логики. Сменой костюма передают эмоции

(спокойное/испуганное лицо), фазы действия (замах/удар), состояния объекта

(целый/разбитый) — то есть визуальное состояние спрайта, управляемое

программой.

Озвучивание героев: звук как элемент логики. Звук в среде — не

украшение, а часть управляющей логики. Библиотека содержит готовые эффекты

и мелодии; собственный голос записывается встроенным рекордером прямо в

редакторе,

дорожка

обрезается

маркерами,

к

ней

применяются

эффекты

(громче/тише, быстрее/медленнее, эхо, реверс). Импортируются файлы форматов

mp3 и wav.

Принципиально различать два блока воспроизведения. «Запустить звук»

стартует дорожку и немедленно передаёт управление дальше — звук идёт

параллельно действию (фоновый эффект, короткий «поп» при попадании).

«Играть звук [имя] до конца» блокирует поток до окончания дорожки — это

нужно, когда следующий шаг должен начаться строго после реплики. Смешение

этих блоков — типичная причина того, что реплики наслаиваются или

обрываются.

Синхронизация речи с изображением строится связкой: одновременно

запускается смена костюма (герой «открывает рот»), выводится текстовое облачко

«сказать [текст]» и проигрывается записанная реплика «играть звук до конца».

Диалог двух персонажей выстраивается на сообщениях: первый говорит и по

завершении «передаёт» сигнал второму, тот отвечает и возвращает сигнал обратно

— очередь реплик соблюдается автоматически. Фоновая музыка выносится в

отдельный бесконечный поток «когда флажок → всегда → играть звук до конца»,

не мешая остальным скриптам [3].

Практикум: сборка игры «Поймай звёзды» по шагам. Ниже —

законченный проект, воспроизводимый на занятии за 20–25 минут; он задействует

клоны, переменные, сенсоры, костюмы и звук.

Спрайт «Корзина» (ловец) управляется мышью:

«когда нажат флажок» → «установить способ вращения [не вращать]» →

«всегда» {«перейти в x: (мышка по x) y: −150»}. Корзина скользит вдоль нижнего

края вслед за курсором.

Спрайт «Звезда» порождает падающие клоны:

«когда нажат флажок» → «скрыть» → «задать [счёт] значение 0» → «всегда»

{«создать клон самого себя» → «ждать (выдать случайное от 0.4 до 1.2) сек»}.

«когда я начинаю как клон» → «показать» → «перейти в x: (выдать

случайное от −220 до 220) y: 180» → «повторять пока не <(y) < −175>»

{ «изменить y на −6» → «если <касается [Корзина]?> то» { «изменить [счёт] на 1»

→ «запустить звук [поп]» → «удалить этот клон» } } → «удалить этот клон».

Разбор логики. Оператор «случайное» разбрасывает звёзды по ширине сцены

и разводит их во времени, поэтому падение не выглядит механическим.

Локальный характер клона позволяет каждой звезде падать независимо. Условие

выхода из цикла (y < −175) уничтожает пролетевшие мимо клоны — без этого

память переполнится сотнями невидимых объектов, и проект начнёт тормозить.

Проверка «касается Корзины» внутри цикла падения фиксирует поимку в тот же

кадр, начисляет очко, даёт звуковой отклик и удаляет клон.

Проект

расширяется

по

ступеням

сложности:

добавляется

таймер

и

переменная «жизни»; при пролёте звезды мимо корзины «изменить [жизни] на

−1»; по «жизни = 0» — «остановить всё» и смена костюма сцены на «Игра

окончена»; вводится нарастание темпа — с ростом счёта уменьшается пауза

между клонами [4].

Типичные ошибки реализации и их устранение. Практика выявляет

повторяющиеся дефекты, каждый с чётким решением. Клоны не удаляются

проект замедляется: в скрипт клона обязательно вводится условие удаления по

выходу за границу или по событию. Персонаж переворачивается при движении

влево — исправляется стилем вращения «влево-вправо». Анимация дёргается

костюмы не выровнены по центру: центры сводятся к одной точке. Реплики

наслаиваются — вместо «запустить звук» ставится «играть звук до конца» там,

где нужна очерёдность.

Скрипт не стартует

— отсутствует шляпный блок

события или спрайт скрыт («показать» не вызван).

Переменная ведёт себя

неожиданно у клонов — перепутаны области видимости: общий счёт делается

глобальным, индивидуальная скорость — локальной [5].

Scratch

предъявляет фундамент информатики в деятельной форме: типы

блоков и C-структуры вводят алгоритмику, координатная модель и клоны —

работу с объектами и памятью, растр и вектор — инженерную культуру графики,

костюмы — состояние и анимацию, звуковые блоки — синхронизацию потоков.

Разобранный проект показывает, что за внешней простотой стоит полноценная

логика — циклы, условия, события, управление жизненным циклом объектов.

Именно

поэтому

среда

служит

не

игрушкой,

а

рабочим

инструментом

дополнительного образования, где технический навык вырастает из доведённого

до конца собственного проекта.

Список использованной литературы

1. Голиков Д. В. Scratch для юных программистов. — СПб.: БХВ-Петербург,

2017. — 190 с.

2. Голиков Д. В. Scratch 3 для юных программистов. — СПб.: БХВ-Петербург,

2019. — 192 с.

3. Пашковская Ю. В. Творческие задания в среде Scratch: рабочая тетрадь для

5–6 классов. — 3-е изд., перераб. и доп. — М.: Лаборатория знаний, 2018. — 192 с.

4. Пашковская Ю. В. Scratch 3.0: творческие проекты на вырост: рабочая

тетрадь для 7–8 классов. — М.: Лаборатория знаний, 2019. — 187 с.

5. Торгашева Ю. В. Первая книга юного программиста. Учимся писать

программы на Scratch. — СПб.: Питер, 2017. — 128 с.