Перейти к основному содержимому

Scratch — мини-проекты с разбором блоков


Зачем эта глава

Здесь собраны готовые фрагменты кода Scratch 3.0 с объяснением каждого важного блока — так же, как в популярной галерее Turtle на Python. Материал рассчитан на тех, кто ищет в интернете «примеры scratch», «как нарисовать в scratch», «игра на scratch код», «блоки scratch для начинающих».

Откройте scratch.mit.eduСоздавай, добавьте спрайты и перенесите блоки из примеров. Теория по редактору — в справочнике Scratch; отдельные приёмы (события, переменные, клоны) — в примерах скриптов.

Порядок изучения

Сначала базовые блоки → затем мини-проекты ниже → шесть полных игр с контрольными точками в главах 3338.

Загрузка интерактивного демо…

Навигация по запросам

Частые поисковые формулировки и куда перейти на этой странице:

Ищут в Google / ЯндексеРаздел ниже
scratch как нарисовать квадрат / фигуруКвадрат пером
scratch радуга / рисование линиямиРадужный многоугольник, Радужные линии
scratch игра собери монеты / счётСобери монеты
scratch движение стрелкамиСобери монеты, Лабиринт — стрелки
scratch пинг понг / мяч отскакиваетПинг-понг
scratch клоны пример / дождьДождь из клонов, Салют
scratch гравитация прыжокПрыжок с гравитацией
scratch лабиринт кодЛабиринт — стрелки + полный урок
scratch сообщения между спрайтамиСтарт по сообщению
блоки scratch для начинающихКак читать примеры, 112 — отдельные блоки

Связь с энциклопедией

Тема в LabТеория в энциклопедииПошаговая игра
События, флаг, клавишиScratch §239 — метод
Костюмы, анимацияScratch §333 — радуга
Координаты, движениеScratch §434 — лабиринт
Условия, касаниеScratch §534
ЦиклыScratch §6все игры 33–38
Переменные, счётScratch §735 — баскетбол
Случайные числаScratch §837 — астероиды
КлоныScratch §936 — арканоид
Перо, рисованиеScratch §1333
Свои блокиScratch §1538 — платформер
ОтладкаScratch §17типичные ошибки ниже
Два уровня практики

Эта страница (Lab) — короткие фрагменты с разбором каждого блока, удобно копировать при поиске в интернете. Энциклопедия 33–38 — полные игры с эскизом, частями А–Г и контрольными точками. Справочник Scratch §1–§17 — определения и картинки блоков.


Как читать примеры

ЭлементЧто означает
СпрайтОбъект на сцене (кот, монета, кнопка). У каждого спрайта свой набор скриптов
СценаФон; координаты X от −240 до 240, Y от −180 до 180; центр — (0, 0)
СобытиеЖёлтый блок вверху скрипта — когда программа начинает выполнять цепочку
ЦиклПовторяет вложенные блоки много раз или бесконечно
УсловиеБлок «если … то» — выполняется только при истинном условии (шестиугольник)
ПеременнаяИменованное число или текст; можно показывать на сцене как счётчик
КлонКопия спрайта; у каждого клона свой экземпляр скрипта «при создании клона»

Цвета блоков в Scratch 3.0

ЦветКатегорияДля чего
ЖёлтыйСобытияСтарт по флагу, клику, клавише, сообщению
ГолубойДвижениеШаги, поворот, координаты x/y
ФиолетовыйВнешний видКостюмы, размер, показать/спрятать
РозовыйЗвукВоспроизведение и эффекты
ОранжевыйУправлениеЦиклы, условия, ожидание
СенсорыСенсорыКлавиши, касание, мышь, ответ
Светло-голубойПеременныеСоздание, изменение, списки
Зелёный (тёмный)ПероРисование на сцене (расширение)
Розово-красныйСделатьСвои блоки-процедуры

Основы мини-проектов

Обязательный каркас

Любой проект начинается с зелёного флага ⚑. В одном скрипте сбрасывайте переменные, позицию и след на сцене:

когда щёлкнут по ⚑
стереть всё
перейти в x: (0) y: (0)
установить [счёт v] в (0)
показать

Разбор блоков:

БлокСмысл
когда щёлкнут по ⚑Точка входа: скрипт запускается при нажатии зелёного флага или при повторном старте игры
стереть всёОчищает рисунки модуля Перо на сцене (нужно расширение «Перо»)
перейти в x: … y: …Мгновенно ставит спрайт в заданную точку без анимации шагов
установить [счёт] в (0)Записывает в переменную счёт число 0; переменную создайте во вкладке «Переменные»
показатьДелает спрайт видимым, если до этого его спрятали
Перо

Кнопка «+ Расширения» внизу слева → Перо. Без опустить перо линии не рисуются. Теория — §13 справочника.


Стартовые мини-проекты

Как нарисовать квадрат в Scratch

Что получится: на сцене появится замкнутый квадрат со стороной 100 шагов.

Как собрать: один спрайт «Карандаш» → расширение Перо → скрипт ниже.

когда щёлкнут по ⚑
стереть всё
опустить перо
перейти в x: (-50) y: (50)

повторить (4)
идти (100) шагов
повернуть вправо на (90)
конец
поднять перо

Разбор:

БлокСмысл
опустить пероВключить рисование линии за спрайтом при движении
перейти в x: (-50) y: (50)Стартовый угол квадрата — левый верхний (подберите координаты под размер сцены)
повторить (4)Четыре стороны многоугольника
идти (100) шаговПровести линию длиной 100 в текущем направлении
повернуть вправо на (90)Поворот на прямой угол; сумма четырёх поворотов = 360°
поднять пероОстановить рисование, чтобы следующее движение не оставляло след

Частая ошибка: забыли опустить перо — спрайт двигается, линий нет.

Теория: §6 циклы, §13 перо. Похожее на Python: Turtle — квадрат.


Радужный многоугольник

Что получится: «звезда» из разноцветных шестиугольников, повёрнутая несколько раз.

когда щёлкнут по ⚑
стереть всё
опустить перо

повторить (36)
установить цвет пера в (случайное от 1 до 200)
повторить (6)
идти (40) шагов
повернуть вправо на (60)
конец
повернуть вправо на (10)
конец

Разбор:

БлокСмысл
установить цвет пера в (случайное от 1 до 200)Каждый виток — новый оттенок (Scratch использует шкалу 0–200)
Внутренний повторить (6) + поворот 60°Правильный шестиугольник (360 ÷ 6 = 60)
Внешний повторить (36) + поворот 10°36 × 10° = полный оборот узора вокруг центра

Анимация «Дыхание»

Что получится: спрайт плавно «раздувается» и сжимается за счёт смены костюмов.

Подготовка: два костюма одного спрайта — обычный и чуть увеличенный (вкладка КостюмыДублироватьИзменить размер).

когда щёлкнут по ⚑
навсегда
следующий костюм
ждать (0.3) сек
конец

Разбор:

БлокСмысл
навсегдаБесконечный цикл — анимация идёт, пока не нажмёте красную кнопку Stop
следующий костюмПереключает костюм по кругу: 1 → 2 → 1 → …
ждать (0.3) секПауза между кадрами; меньше значение — быстрее «дыхание»

Кликер со счётом

Что получится: при клике по спрайту растёт счёт и на миг увеличивается размер — простая «игра-кликер».

Подготовка: переменная счёт, галочка «показывать на сцене».

когда щёлкнут по ⚑
установить [счёт v] в (0)

когда этот спрайт нажат
изменить [счёт v] на (1)
изменить размер на (5)
ждать (0.1) сек
изменить размер на (-5)

Разбор:

БлокСмысл
когда этот спрайт нажатОтдельное событие — срабатывает при клике именно по этому спрайту
изменить [счёт v] на (1)Прибавляет 1 к текущему значению переменной
изменить размер на (5) / (-5)Визуальный «отклик» на клик без смены костюма

След за мышью (рисовалка)

Что получится: при зажатой кнопке мыши спрайт рисует линию за курсором.

когда щёлкнут по ⚑
стереть всё
опустить перо
перейти к [указатель мыши v]

повторять всегда
если <нажата кнопка мыши?> то
идти к [указатель мыши v]
иначе
поднять перо
перейти к [указатель мыши v]
опустить перо
конец
ждать (0.02) сек
конец

Разбор:

БлокСмысл
нажата кнопка мыши?Условие (шестиугольник): истина, пока кнопка зажата
идти к [указатель мыши]Движение к курсору с рисованием, если перо опущено
Ветка иначеКогда кнопку отпустили — поднять перо, «перепрыгнуть» к мыши без линии, снова опустить
ждать (0.02) секСнижает нагрузку на процессор в цикле повторять всегда

Мини-проекты — разбор по темам

1. Графика и анимация

1.1. Радужные линии между точками

Идея: три точки летят по сцене; четвёртый спрайт рисует между ними цветные отрезки. Полная пошаговая сборка — практика 1 — радуга.

Спрайт «Точка 1» (дублируйте два раза → Точка 2, Точка 3):

когда щёлкнут по ⚑
перейти в x: (случайное от -200 до 200) y: (случайное от -150 до 150)
направиться в (случайное от -180 до 180)

повторять всегда
идти (10) шагов
если <касается края?> то
отскочить от края
конец
конец
БлокСмысл
направиться в (…)Задаёт угол движения в градусах: 0° — вверх, 90° — вправо
идти (10) шаговПлавное движение вперёд (в отличие от перейти в)
касается края?Проверка границы сцены
отскочить от краяРазворачивает спрайт и «отражает» траекторию

Спрайт «Рисующая точка»:

когда щёлкнут по ⚑
стереть всё
опустить перо

повторить (3)
установить цвет пера в (случайное от 1 до 200)
перейти к [Точка 1 v]
перейти к [Точка 2 v]
перейти к [Точка 3 v]
ждать (0.01) сек
конец
БлокСмысл
перейти к [Точка 1 v]Мгновенный прыжок к центру выбранного спрайта; между прыжками рисуется линия
Внешний повторить (3)Три «кадра» узора; увеличьте число для более плотного рисунка

Совет: правый клик по флагу → Турбо режим, если рисование тормозит.

Полный урок: 33 — радужные линии. Теория: §4 координаты, §13 перо.


1.2. Звёздное небо из клонов

Идея: при старте создаётся много копий «звезды» в случайных местах.

Спрайт «Звезда» — маленький жёлтый кружок; при ⚑ скрыт:

когда щёлкнут по ⚑
скрыть

повторить (50)
создать клон самого себя
конец

при создании клона
перейти в x: (случайное от -240 до 240) y: (случайное от -180 до 180)
изменить размер на (случайное от 20 до 80) %
показать
БлокСмысл
скрытьОригинал не виден; на сцене только клоны
создать клон самого себяКопия спрайта со своим скриптом «при создании клона»
при создании клонаОтдельная шапка скрипта — выполняется один раз для каждого клона
изменить размер на … %Случайный масштаб — звёзды разного «блеска»

Для мерцания добавьте в конец клона цикл изменить яркость вместо немедленного удалить этот клон.

Теория: Scratch §9, §8 случайные числа.


2. Игры и интерактив

2.1. Игра «Собери монеты» — полный разбор

Что получится: герой ходит стрелками, монеты дают +1 к счёту и перепрыгивают в новое место.

Спрайты: Герой, Монета, Ведущий (пустой квадрат или фон). Переменная счёт — для всех спрайтов, показывать на сцене.

Герой:

когда щёлкнут по ⚑
перейти в x: (0) y: (0)

повторять всегда
если <нажата клавиша [стрелка вправо]?> то
изменить x на (5)
конец
если <нажата клавиша [стрелка влево]?> то
изменить x на (-5)
конец
если <нажата клавиша [стрелка вверх]?> то
изменить y на (5)
конец
если <нажата клавиша [стрелка вниз]?> то
изменить y на (-5)
конец
ждать (0.02) сек
конец
БлокСмысл
нажата клавиша [стрелка вправо]?Сенсоры: true, пока клавиша зажата
изменить x на (5)Сдвиг вправо на 5 пикселей за один проход цикла
ждать (0.02) сек~50 обновлений в секунду — плавное движение без «телепорта»

Монета:

когда щёлкнут по ⚑
показать
перейти в x: (случайное от -200 до 200) y: (случайное от -150 до 150)

когда я касаюсь [Герой v]
изменить [счёт v] на (1)
перейти в x: (случайное от -200 до 200) y: (случайное от -150 до 150)
БлокСмысл
когда я касаюсь [Герой v]Событие срабатывает в момент касания — не нужен цикл с проверкой
Повторный перейти в случайную точкуМонета «переспавнивается»; альтернатива — спрятать и создать клон

Ведущий:

когда щёлкнут по ⚑
установить [счёт v] в (0)
сказать [Собери монеты!] в течение (2) сек

Чек-лист: после ⚑ счёт = 0; каждое касание +1 ровно один раз; имена спрайтов в блоках совпадают с панелью спрайтов.

Теория: §5 условия и касание, §7 переменные. Разбор блоков по одному: 112 — счётчик монет.


2.2. Движение стрелками — заготовка для лабиринта

Что получится: персонаж ходит по сцене; этот же скрипт — основа лабиринта.

когда щёлкнут по ⚑
перейти в x: (0) y: (0)

повторять всегда
если <нажата клавиша [стрелка вверх]?> то
изменить y на (4)
конец
если <нажата клавиша [стрелка вниз]?> то
изменить y на (-4)
конец
если <нажата клавиша [стрелка вправо]?> то
изменить x на (4)
конец
если <нажата клавиша [стрелка влево]?> то
изменить x на (-4)
конец
ждать (0.02) сек
конец
БлокСмысл
Четыре отдельных еслиКаждая стрелка проверяется независимо; можно нажать диагональ (два если сработают за кадр)
Шаг 4Меньше шага — точнее проход по коридору; при «проходе сквозь стену» уменьшите до 2
ждать (0.02) секОбязательная пауза в повторять всегда — иначе Scratch перегружает цикл

Стены: после движения добавьте если <касается цвета [#000000]?> то и откат изменить x/y в обратную сторону — подробно в 34, часть В.


2.3. Прыжок с гравитацией — заготовка для платформера

Что получится: герой падает вниз и прыгает по пробелу — ядро баскетбола и платформера.

Переменные скорость_y и на_земле — «для всех спрайтов» или только для героя.

когда щёлкнут по ⚑
установить [скорость_y v] в (0)
установить [на_земле v] в (1)

повторять всегда
если <нажата клавиша [стрелка вправо]?> то
изменить x на (4)
конец
если <нажата клавиша [стрелка влево]?> то
изменить x на (-4)
конец
если <нажата клавиша [пробел] и <(на_земле) = (1)>> то
установить [скорость_y v] в (12)
установить [на_земле v] в (0)
конец
изменить y на (скорость_y)
изменить [скорость_y v] на (-1)
если <касается [Земля v] или <касается цвета [#00cc00]>> то
установить [скорость_y v] в (0)
установить [на_земле v] в (1)
иначе
установить [на_земле v] в (0)
конец
ждать (0.02) сек
конец
БлокСмысл
изменить y на (скорость_y)Позиция += скорость каждый кадр — имитация падения
изменить [скорость_y] на (-1)Ускорение вниз (гравитация); число подберите под «вес» персонажа
на_земле = 1Разрешает прыжок только когда герой стоит на полу
касается [Земля] или цветПол — отдельный спрайт или зелёная заливка на фоне

Полные уроки: 35 — баскетбол, 32 — платформер, 38 — продвинутый платформер.


2.4. Упрощённый пинг-понг

Спрайты: Ракетка (низ экрана, стрелки ← →), Мяч. Переменные dx, dy — скорость мяча по осям.

Мяч — ключевые блоки:

когда щёлкнут по ⚑
перейти в x: (0) y: (0)
установить [dx v] в (4)
установить [dy v] в (4)

повторять всегда
изменить x на (dx)
изменить y на (dy)
если <касается края?> то
отскочить от края
установить [dy v] в ((-1) * (dy))
конец
если <касается [Ракетка v]?> то
установить [dy v] в (abs (dy))
установить [dx v] в ((dx) + ((x) - (x позиция [Ракетка v])) / 10)
конец
если <y < (-170)> то
сказать [Проигрыш!] в течение (1) сек
остановить [все v]
конец
ждать (0.02) сек
конец
БлокСмысл
изменить x на (dx)Имитация физики: позиция += скорость каждый кадр
установить [dy] в ((-1) * (dy))Отражение от верхней/нижней стенки — инверсия вертикальной скорости
abs (dy)После удара о ракетку мяч летит вверх (положительный dy)
(x) - (x позиция [Ракетка])Чем дальше от центра ракетки удар, тем сильнее боковой отскок
остановить [все v]Останавливает все скрипты всех спрайтов — конец партии

Полный арканоид с кирпичамипрактика 4. Lab: 112 — движение с границами.


2.5. Мини-викторина

Идея: ведущий задаёт вопрос; ответ проверяется блоком «ответ».

когда щёлкнут по ⚑
установить [счёт v] в (0)
сказать [Столица Франции?] в течение (2) сек
ждать (2) сек
если <(ответ) = [Париж]> то
изменить [счёт v] на (1)
сказать [Верно!] в течение (1) сек
иначе
сказать [Попробуй ещё] в течение (1) сек
конец
БлокСмысл
сказать … в течениеОблачко над спрайтом с таймером
ждать (2) секДаёт время прочитать вопрос
(ответ)Сенсоры: текст, введённый в поле «ответ» на сцене (включите в настройках сцены)
Сравнение с [Париж]Регистр и пробелы должны совпасть; для устойчивости используйте буквы (ответ) = буквы (Париж)

3. Клоны и эффекты

3.1. Дождь из клонов

когда щёлкнут по ⚑
скрыть

повторять всегда
создать клон самого себя
ждать (0.1) сек
конец

при создании клона
перейти в x: (случайное от -240 до 240) y: (180)
показать
повторять пока не <y < (-180)>
изменить y на (-8)
ждать (0.02) сек
конец
удалить этот клон
БлокСмысл
Цикл с создать клонКаждые 0.1 с новая капля
повторять пока не <y < (-180)>Капля падает, пока не выйдет за нижний край
удалить этот клонОбязательно — иначе сотни невидимых клонов замедлят проект

3.2. Салют по пробелу

когда щёлкнут по ⚑
скрыть

когда нажата клавиша [пробел]
повторить (20)
создать клон самого себя
конец

при создании клона
перейти в x: (0) y: (0)
показать
направиться в (случайное от -180 до 180)
изменить цвет на (случайное от 1 до 200)
повторить (30)
двигаться (5) шагов
изменить размер на (-3)
ждать (0.02) сек
конец
удалить этот клон
БлокСмысл
направиться в (случайное …)Каждая частица летит в своём направлении
изменить размер на (-3)Частица «угасает», уменьшаясь
Пакет из 20 клонов по пробелуОдин залп салюта

4. Процедуры и сообщения

4.1. Свой блок «прыжок»

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

определить прыгнуть (высота)
повторить (высота)
изменить y на (4)
конец
повторить (высота)
изменить y на (-4)
конец

Вызов у героя при нажатии пробела: прыгнуть (10).

ЭлементСмысл
определить …Шапка своего блока — тело хранится отдельно
Параметр высотаЧисло передаётся при вызове — один блок для низкого и высокого прыжка
Два цикла вверх/внизСимметричная дуга без физики гравитации

4.2. Старт игры по сообщению (меню)

Кнопка «Играть»:

когда этот спрайт нажат
передать [старт_игры v] и ждать

Герой:

когда щёлкнут по ⚑
скрыть

когда я получу [старт_игры v]
показать
перейти в x: (0) y: (-80)
БлокСмысл
передать [старт_игры] и ждатьСигнал всем спрайтам; кнопка ждёт, пока обработчики закончат
когда я получу [старт_игры]Герой «оживает» только после клика по меню
скрыть при ⚑Герой не двигается до старта

Имена сообщений создаются в выпадающем списке блока «передать» — буква в букву одинаковые во всех скриптах.

Теория: Scratch §2 — сообщения. Lab: 112 — сообщение между спрайтами. Игра: 34 — лабиринт, смена уровня.


5. Шесть игр — полный маршрут

Мини-проекты выше — короткие заготовки для поиска и копирования блоков. Шесть игр с эскизами, частями А–Д и контрольными точками — в энциклопедии:

ПроектГлаваГлавные блоки
1Радужные линии33Перо, движение, дубликаты
2Лабиринт34Клавиши, цвет стен, сообщения
3Баскетбол35Гравитация, хитбокс
4Арканоид36Клоны, отскок мяча
5Астероиды37Мышь, wrap-экран, стрельба
6Платформер38Склоны, враг, анимация

Remix MIT и демосцена — 31, 32.


6. Типичные ошибки

СимптомПричинаЧто сделать
Скрипт не запускаетсяНет жёлтого блока-событияДобавьте когда щёлкнут по ⚑ или другое событие
Счёт +10 за одну монетуСобытие касания срабатывает каждый кадрспрятать монету или флаг «уже собрано»
Линии не рисуютсяПеро поднято или расширение не включено+ Расширения → Перо → опустить перо
Сотни «призраков» на сценеКлоны без удалить этот клонВ конце жизни клона — удаление
Герой проходит сквозь стенуШаг 5–10 при проверке цвета после движенияСначала если цвет, потом изменить x/y на 2–4
Сообщение не доходитОпечатка в имениВыберите одно имя из списка во всех блоках

Отладка — §17 справочника Scratch.


7. Чек-лист перед публикацией

  • Зелёный флаг сбрасывает счёт, позиции и след на сцене.
  • Имена спрайтов в блоках касается, перейти к совпадают с панелью справа.
  • У каждого клона есть удалить этот клон.
  • Проект сохранён (Файл → Сохранить на компьютер или в аккаунте).
  • Проверка в Турбо режиме (правый клик по флагу), если анимация медленная.

Куда двигаться дальше

УровеньМатериал
Блоки по отдельностиПримеры скриптов Scratch
Справочник редактораScratch — энциклопедия §1–§17
Метод «эскиз → части»Как учиться по проектам
Шесть игр пошагово3338
Текстовый код после ScratchТаблица Scratch-Python, Python для детей
Рисование в PythonTurtle — примеры
Рисование в браузере (JavaScript)p5.js — примеры
FAQ по Scratch98 — вопросы и ответы

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").