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

9.05. Scratch

Родителям и детям

Scratch

Scratch — это полноценная среда программирования, разработанная в MIT (Массачусетском технологическом институте), где учат самых разных людей — от первоклассников до исследователей. В Scratch вы собираете программы из цветных блоков, как из пазлов. Блоки подходят друг к другу только тогда, когда это логично — например, к блоку «если …» можно подключить только условие, а не звук. Это называется визуальным программированием.

И да — на Scratch можно создать настоящую игру, мультфильм, музыкальный инструмент, тест или даже простого чат-бота. Всё, что вы сейчас держите в руках (планшет, телефон, компьютер), тоже когда-то начиналось с таких «конструкторов».


1. Как устроен Scratch и как в него войти

1.1. Что такое Scratch?

Scratch — это веб-платформа: чтобы начать, достаточно открыть браузер и перейти на сайт https://scratch.mit.edu. Там вы увидите большую зелёную кнопку «Создать» (или "Создавай", "Начни создавать") — она и откроет редактор.

image-1.png

Редактор разделён на несколько областей:

  • Сцена — это «экран» вашей программы. Тут всё происходит: персонажи двигаются, появляются вспышки, играют звуки.
  • Спрайты — это персонажи, предметы, кнопки. У каждой игры может быть один или сто спрайтов.
  • Область кода — сюда вы перетаскиваете блоки, чтобы составить программу.
  • Палитра блоков — «ящик с деталями», разделённый по темам: движение, внешний вид, звук, события и т.д.
  • Список спрайтов — справа внизу: тут вы выбираете, кому из героев вы сейчас пишете инструкции.

Давайте разберём наглядно:

image-2.png

  • 1 - Основная панель, на которой можно создать новый проект, перейти в руководство, авторизоваться.
  • 2 - Палитра блоков
  • 3 - Область кода
  • 4 - Сцена
  • 5 - Флажок для запуска сцены и кнопка остановки
  • 6 - Список спрайтов (а выше - параметры спрайта)
  • 7 - Управление фоном

💡 Важно: Scratch работает в браузере, и ничего устанавливать не нужно. Но чтобы сохранять свои проекты, нужно зарегистрироваться.

1.2. Как зарегистрироваться

  1. Нажмите «Присоединиться к Scratch» в правом верхнем углу на основной панели.
  2. Придумайте имя пользователя — оно будет видно другим, но не показывает ваше настоящее имя. Выбирайте что-то вроде «КосмоКот_2025» или «Робо_Алиса».
  3. Укажите дату рождения — это нужно только для того, чтобы платформа понимала, что вы моложе 13 лет (тогда включаются особые правила защиты).
  4. Выберите пароль — пусть он будет надёжным (например, Пароль7!Звезда).
  5. Подтвердите почту: на неё придёт письмо с ссылкой. Перейдите по ней — и готово!

Безопасность: Scratch запрещает публиковать личные данные (номера телефонов, адреса школы, фото с лицом). Всё, что вы опубликуете, проходят модераторы. Можно работать только в личном режиме — тогда никто, кроме вас, не увидит проекты.


2. События и сообщения

2.1. Что такое событие?

Представьте, что вы идёте по улице и внезапно слышите: «Тимур, подожди!» — вы останавливаетесь. Это событие (вас окликнули) → реакция (вы остановились).

В Scratch программы тоже работают по принципу:

Когда что-то произошло → сделать что-то.

Эти «что-то произошло» и есть события.

По сути, спрайты посылают друг другу сигналы, как будто шлют письмо. Для событий есть целый раздел "События" желтого цвета.

image-3.png

2.2. Основные события в Scratch

БлокЧто значитПример использования
Когда 🟢 нажатПри нажатии на зелёный флажок в углу сценыЗапуск всей игры
Когда нажата клавиша [пробел]После нажатия клавишиПрыжок, выстрел
Когда получил сообщение [старт]Когда другой спрайт отправил это сообщениеЗапуск врагов после таймера

image-4.png

2.3. Как работают сообщения?

Сообщения — это способ организовать порядок действий между спрайтами, даже если они «не видят друг друга».

image-5.png

Например:

Главный герой приходит к двери → отправляет сообщение «открыть дверь» → дверь слышит это сообщение и начинает анимацию открытия.

Это важнее, чем кажется: если бы каждый спрайт сам решал, в какой момент начинать действие, игра быстро стала бы хаотичной.

2.4. Пример: «Старт игры по команде»

Цель: при нажатии на зелёный флаг герой ждёт 2 секунды, затем кричит «Поехали!» и отправляет сигнал — и только тогда враги начинают двигаться.

Шаги:

  1. У героя:

    [Когда 🟢 нажат]
    ждать (2) сек.
    сказать [Поехали!] в течение (1) сек.
    отправить сообщение [старт]
  2. У врага:

    [Когда получил сообщение [старт]]
    повторять
    изменить x на (-5)
    ждать (0.1) сек.

Так герой управляет временем старта — враги не пойдут, пока не услышат сигнал.


3. Внешний вид, анимация и звуки

image-7.png

3.1. Костюмы

У каждого спрайта может быть несколько костюмов — это как кадры в мультфильме. Например, кот может иметь:

  • кот_стоит
  • кот_бежит_1
  • кот_бежит_2
  • кот_прыгает

image-6.png

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

image-25.png

Основные блоки:

  • следующий костюм
  • включить костюм [имя]
  • ждать (0.1) сек. — чтобы кадры не мелькали слишком быстро

3.2. Эффекты

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

ЭффектЗначениеПример
цвет0–200 (красный → фиолетовый → снова красный)Плавное мерцание
яркость-100 (тёмный) до 100 (светлый)Вспышка при ударе
размытие0–100«туман», переходы
размер% от исходногоУвеличение при усилении

🎨 Совет: эффекты можно «накапливать». Чтобы сбросить — используйте установить эффект [...] в (0).

3.3. Звуки

image-8.png

Scratch имеет встроенную библиотеку звуков (звуки животных, шагов, выстрелов, музыки). Можно также загрузить свой (формат .mp3 или .wav).

Важные блоки:

  • воспроизвести звук [мяу] — запускает звук и сразу продолжает выполнение скрипта
  • воспроизвести звук [мяу] и ждать — ждёт, пока звук закончится
  • остановить все звуки — полезно при рестарте игры

image-26.png

3.4. Пример: «Кот прыгает с эффектом»

[Когда нажата клавиша [пробел]]
установить эффект [яркость] в (50)
воспроизвести звук [прыжок] и ждать
изменить y на (80) // вверх
ждать (0.2) сек.
повторить (8)
изменить y на (-10)
ждать (0.05) сек.
установить эффект [яркость] в (0)

Так прыжок выглядит ярче и «веселее».


4. Перемещение спрайтов — координаты, как в географии

4.1. Система координат в Scratch

Экран в Scratch — это координатная плоскость.

image-9.png

  • Центр сцены — точка (0, 0)
  • X — горизонталь: слева от центра — отрицательные числа (до -240), справа — положительные (до +240)
  • Y — вертикаль: внизу — отрицательные (до -180), вверху — положительные (до +180)

📏 Размер сцены: 480×360 пикселей.

          y = +180



x = -240 ◄────┼────► x = +240



y = -180
  • Центр сцены: (0, 0)
  • Ширина сцены: 480 пикселей (-240+240)
  • Высота сцены: 360 пикселей (-180+180)
  • Направление по умолчанию: 90° — вправо
    • — вверх
    • 180° — вниз
    • -90° или 270° — влево

Как быстро переместиться в угол?

перейти в x: (240) y: (180)   // правый верхний
перейти в x: (-240) y: (-180) // левый нижний

4.2. Как двигаться?

image-10.png

БлокЧто делает
идти на (10) шаговДвигается в текущем направлении
изменить x на (5)Сдвинуться вправо на 5 пикселей
изменить y на (-10)Сдвинуться вниз на 10
направить в сторону (90)Повернуть вправо (0° — вверх, 90° — вправо, 180° — вниз, -90° — влево)
направить в сторону [спрайт]«Смотреть на» другой объект

4.3. Отскоки — как в пинг-понге

Чтобы мяч отскакивал от стен, используйте:

[Когда 🟢 нажат]
направить в сторону (случайное от (-45) до (45))
повторять
идти на (5) шагов
если <касается края?> то
отскочить от края
конец

💡 отскочить от края — это не просто разворот. Scratch автоматически меняет направление, как настоящий мяч: угол падения = углу отражения.

Например, благодаря этому, можно реализовать полноценное управление через клавиши.

image-27.png


5. Условия и условный оператор — учим программу думать

image-11.png

5.1. Что такое условие?

Представьте, что вы выходите из дома. Вы смотрите в окно и задаёте себе вопрос:

«Идёт ли дождь?»

Если да → вы берёте зонт.
Если нет → оставляете его дома.

Это и есть условное решение: действие зависит от проверки.

В Scratch условия выглядят так:

если <...> то
...
конец

А если нужно предусмотреть оба варианта:

если <...> то
...
иначе
...
конец

image-28.png

5.2. Где «...»? — логические условия

image-12.png

Scratch позволяет проверять самые разные ситуации. Вот основные:

Тип условияБлокПример использования
Касание<касается [спрайт/мышка/край]?>Поймал монетку? Ударился о врага?
Сравнение чисел<(очки) > (10)>Достаточно очков для перехода?
Сравнение строк<(имя) = [Макс]>Проверка пароля или имени
Логические связки< <A> и <B> >, < <A> или <B> >, <не <C>>«Касается земли и не летит» → можно прыгать

🔍 Обратите внимание: условия всегда дают ответ — да (истина) или нет (ложь). Именно поэтому они подходят только в «шестиугольные» разъёмы блоков если и пока.

image-35.png

5.3. Пример: «Сбор монет и жизнь»

Герой собирает монеты (+1 очко), но если касается врага — теряет жизнь.

[Когда 🟢 нажат]
установить [жизни v] в (3)
установить [очки v] в (0)

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

если <касается [враг]?> то
изменить [жизни v] на (-1)
сказать [Ай!] в течение (0.5) сек.
ждать (1) сек. // бессмертие на 1 сек
конец

если <(жизни) = (0)> то
остановить [все v]
сказать [Игра окончена.] в течение (3) сек.
конец

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


6. Циклы

image-13.png

6.1. Почему циклы нужны?

Представьте: вам нужно нарисовать забор из 20 досок.
Можно 20 раз написать:

«Поставить доску. Сдвинуться вправо.»

А можно сказать один раз:

«Повтори 20 раз: поставить доску и сдвинуться.»

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

image-29.png

6.2. Три типа циклов в Scratch

ТипБлокКогда использовать
Повтори N разповторить (10)Точно известно, сколько раз: шаги, взмахи крыльями
ВсегдавсегдаНепрерывные действия: движение, проверка касаний
Покаповторять пока <...>Действие до тех пор, пока условие истинно: «бежать, пока не дойдёшь до финиша»

6.3. Пример: «Черепашка рисует квадрат»

[Когда 🟢 нажат]
опустить перо // из модуля «Перо»
повторить (4)
идти на (100) шагов
повернуть направо на (90) градусов
конец
поднять перо

Один цикл — и готово. Без него пришлось бы 4 раза копировать одни и те же два блока.

image-36.png

6.4. Важно: «всегда» ≠ «зависание»

Цикл всегда — не ошибка. Он работает параллельно с другими скриптами. Но если внутри всегда нет ждать, Scratch может «захлебнуться» — поэтому всегда добавляйте небольшую паузу (0.01–0.1 сек), особенно при проверках.


7. Переменные и типы данных

image-14.png

7.1. Что такое переменная?

Представьте, что у вас есть ящики, на каждом — этикетка:

  • очки
  • имя
  • игра_активна

В ящик очки вы кладёте число: 5, 100, -3.
В имя — слово: «Алиса», «Робо-23».
В игра_активна — флажок: да / нет.

image-30.png

В программировании такой «ящик» называют переменной — потому что то, что в нём лежит, может меняться со временем.

7.2. Как создать переменную?

В Scratch:

  1. Вкладка «Переменные»«Создать переменную»
  2. Название: очки
  3. Выбор:
    • Для всех спрайтов (глобальная) — если всем нужно знать счёт
    • Только для этого спрайта (локальная) — например, здоровье у каждого врага своё

После создания появляются блоки:

  • установить [очки v] в (0)
  • изменить [очки v] на (1)
  • (очки)значение переменной (можно подставлять в условия и формулы)

7.3. Типы данных

image-15.png

ТипЧто хранитПримерыКак определяется в Scratch
ЧислоЦелые и дробные5, 3.14, -10Автоматически, если ввести число
СтрокаТекст"Привет", "Level 2"Всё в кавычках — или через спросить
БулевоДа/Нет, Истина/Ложьистина, ложьРезультат условий: <5 > 3>истина

⚠️ Scratch не требует указывать тип вручную — он определяет его по значению. Но важно помнить:

  • "5" + "3""53" (склеивание строк)
  • (5) + (3)8 (сложение чисел)
    — разница в скобках и кавычках!

image-31.png

Комбинирование разных типов данных позволяет даже формировать сложные проекты, вроде калькулятора:

image-37.png

7.4. Пример: «Суперсила на время»

Герой подбирает бустер → сила = истина на 5 секунд:

[Когда касается [бустер] и <не <сила>>]
установить [сила v] в (истина)
надеть эффект [цвет] на (100)
воспроизвести звук [усиление]
ждать (5) сек.
установить [сила v] в (ложь)
сбросить эффекты

А в атаке:

если <(сила) = истина> то
воспроизвести звук [взрыв]
сказать [БАМ!] в течение (0.3) сек.
иначе
сказать [Тук.]
конец

8. Случайные числа и диапазоны

image-16.png

8.1. Зачем нужна случайность?

В реальной жизни многое происходит случайно:

  • Где упадёт монетка?
  • Какой вопрос выпадет в викторине?
  • Где появится враг?

Без случайности игра быстро станет скучной — всё предсказуемо.

8.2. Блок случайное от () до ()

Находится в категории «Операторы». Примеры:

  • случайное от (1) до (6) — бросок кубика
  • случайное от (-200) до (200) — позиция по X
  • случайное от (1) до (100) < 20 — 20% шанс события (ложь/истина)

image-32.png

8.3. Пример: «Появление врагов»

[Когда 🟢 нажат]
всегда
ждать (случайное от (2) до (5)) сек.
создать клон от [враг v]
конец

[Когда я начинаю как клон]
перейти в x: (240) y: (случайное от (-150) до (150))
показать
повторять пока <x > (-250)>
изменить x на (-3)
ждать (0.02) сек.
конец
удалить этого клона

Здесь:

  • Враги появляются через 2–5 секунд (не ритмично!)
  • Каждый — на случайной высоте
  • Движутся слева направо и исчезают за краем

8.4. Как создать «5% шанс»?

если <(случайное от (1) до (100)) < (6)> то
сказать [Редкий предмет!]
показать спрайт [бриллиант]
конец

Почему < 6? Потому что 1, 2, 3, 4, 5 — это 5 значений из 100 → 5%.


9. Клоны

image-17.png

9.1. Что такое клон?

Клон — это точная копия спрайта в момент создания, но с собственной «жизнью»:

  • Может быть в другом месте
  • Может иметь свои переменные (если использовать локальные)
  • Выполняет скрипт Когда я начинаю как клон независимо от других

Это как клонирование ниндзя: все выглядят одинаково, но каждый бежит по своей тропе.

9.2. Как создать клон?

  1. У спрайта должен быть скрипт:
    [Когда я начинаю как клон]
    ... // что делать клону
    удалить этого клона // обязательно в конце!
  2. Где-то (например, по таймеру):
    создать клон от [этот спрайт v]

❗ Без удалить этого клона клоны будут накапливаться — и игра замедлится.

9.3. Индивидуальные свойства клонов

Хотя клоны создаются от одного спрайта, каждый может «помнить» своё:

[Когда я начинаю как клон]
установить [скорость v] в (случайное от (2) до (6))
установить [урон v] в (округлить ((скорость) / 2))
показать
...

Здесь у каждого клона — своя скорость и урон, даже если переменные локальные (только для спрайта).

image-34.png

9.4. Пример: «Шутер с пулями»

У героя:

[Когда нажата клавиша [пробел]]
создать клон от [пуля v]

У пули:

[Когда я начинаю как клон]
перейти в x: (x героя) y: (y героя)
показать
повторять пока <не <касается края? или касается врага?>>
изменить x на (10)
ждать (0.02) сек.
конец
удалить этого клона

Так можно стрелять много раз — каждая пуля живёт своей жизнью.


10. Операторы строк

image-18.png

10.1. Строки

В Scratch можно работать с текстом:

  • Склеивать
  • Измерять длину
  • Искать части
  • Сравнивать

10.2. Основные строковые операции

БлокЧто делаетПример
объединить [Привет, ] и (имя)Склеивает строки"Привет, Алиса"
длина строки (имя)Считает символы"Кот" → 3
<(имя) = [Кот]>Проверка на точное совпадениеУчитывает регистр и пробелы!
буква (1) от (имя)Берёт первую букву"Алиса" → "А"

💡 "кот""Кот" — Scratch чувствителен к заглавным буквам.

10.3. Пример: «Пароль с подсказкой»

спросить [Введите пароль (3 буквы, начинается с "С")] и ждать
если <(длина строки (ответ)) = (3)> и <(буква (1) от (ответ)) = [С]> то
сказать [Подходит!]
иначе
сказать [Подсказка: 3 буквы, первая — С]
конец

11. Чат-бот

image-19.png

11.1. Как устроен простой бот?

Он реагирует на ключевые слова по заранее написанным правилам.

Алгоритм:

  1. Спросить что-то
  2. Ждать ответа
  3. Проверить ответ:
    • совпадает с да? → ответить «Отлично!»
    • совпадает с нет? → «Жаль…»
    • иначе → «Не понял. Повтори?»

image-39.png

11.2. Пример: «Друг-помощник»

[Когда 🟢 нажат]
сказать [Привет! Я — Бот. О чём поговорим?] в течение (2) сек.
спросить [Можно задать вопрос?] и ждать

если <(ответ) содержит [погода]> то
сказать [Сегодня солнечно!]
иначе
если <(ответ) содержит [имя]> то
сказать [Меня зовут Бот-2025!]
иначе
сказать [Интересно! Расскажи ещё.]
конец
конец

🔍 Блок содержит — из расширения «Текстовые операции» (нужно включить внизу палитры блоков).

11.3. Как добавить память?

Используем переменную настроение:

  • Если ответ спасибоустановить [настроение v] в [хорошее]
  • Потом:
    если <(настроение) = [хорошее]> то
    сказать [Рад был помочь!]
    конец

12. Списки

image-20.png

12.1. Что такое список?

Представьте столбик в тетради:

1. Яблоко  
2. Хлеб
3. Молоко

Это список покупок. В программировании — список.

В Scratch:

  • Список может хранить числа, строки, даже результаты условий
  • Каждый элемент имеет номер (индекс): 1, 2, 3…
  • Можно добавлять, удалять, заменять, искать

image-24.png

12.2. Основные операции

ДействиеБлок
Создатьсоздать список [инвентарь]
Добавить в конецдобавить [ключ] в [инвентарь v]
Вставить на место 2вставить [факел] в (2) в [инвентарь v]
Удалить №3удалить (3) из [инвентарь v]
Длина списка(длина списка [инвентарь v])
Перебордля каждого [предмет] в [инвентарь v]сказать (предмет)

12.3. Пример: «Инвентарь и проверка»

[Когда касается [ключ]]
добавить [ключ] в [инвентарь v]
сказать [Ключ добавлен!] в течение (1) сек.

[Когда касается [дверь]]
если <[инвентарь v] содержит [ключ]> то
сказать [Открыто!]
удалить [ключ] из [инвентарь v]
иначе
сказать [Нужен ключ!]
конец

13. Модуль «Перо»

image-21.png

13.1. Что даёт модуль «Перо»?

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

  • Графиков и диаграмм
  • Рисовалок и песочниц
  • Визуализации алгоритмов (например, сортировки)
  • Следов от пуль, трасс в гонках, линий телепортации

13.2. Основные блоки

ГруппаБлокНазначение
Управлениеопустить перо / поднять пероВключить/выключить рисование
Цветустановить цвет пера в (75)0—200 (как эффект «цвет»)
Толщинаустановить размер пера в (2)Толщина линии в пикселях
ЗаливказаполнитьЗакрасить замкнутую область текущим цветом
ОчисткаочиститьСтереть ВСЁ, что нарисовано пером на сцене

image-38.png

⚠️ Важно:

  • «Перо» рисует на сцене, а не на спрайте.
  • Рисунок остаётся, даже если спрайт исчезает.
  • очистить убирает только то, что нарисовано пером — не спрайты и фон.

13.3. Пример 1: «Художник-робот»

[Когда 🟢 нажат]
установить размер пера в (3)
установить цвет пера в (120)
опустить перо

всегда
идти на (5) шагов
если <нажата клавиша [влево]?> то
повернуть влево на (15) градусов
конец
если <нажата клавиша [вправо]?> то
повернуть вправо на (15) градусов
конец
конец

Теперь при управлении стрелками робот рисует траекторию — как в игре «Лабиринт с памятью».

13.4. Пример 2: «Гистограмма очков»

Допустим, у нас есть 4 игрока, и их очки хранятся в списке [очки]: [12, 7, 20, 15].

[Когда 🟢 нажат]
очистить
установить цвет пера в (90)
установить x в (-150)

для каждого [значение] в [очки v]
опустить перо
изменить y на ((значение) * 2) // масштаб: 1 очко = 2 пикселя
изменить x на (20)
изменить y на ((-значение) * 2)
поднять перо
изменить x на (10) // промежуток
конец

Получаем столбчатую диаграмму — без спрайтов, только линии.


14. Модуль «Музыка»

image-22.png

14.1. Что можно делать?

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

Модуль добавляет новые блоки:

  • играть ноту (60) в течение (0.5) долей
  • установить темп в (60) ударов в минуту
  • установить инструмент в (1) (1–20: фортепиано, скрипка, барабаны и др.)

🎼 Ноты кодируются числами:

  • До первой октавы = 60
  • Ре = 62, Ми = 64, Фа = 65, Соль = 67, Ля = 69, Си = 71
  • До второй = 72
    — шаг = 2 для целых тонов, 1 для полутонов.

14.2. Пример: «Мелодия „В лесу родилась ёлочка“»

установить инструмент в (1)  // фортепиано
установить темп в (120)

играть ноту (67) в течение (0.5) долей // соль
играть ноту (67) в течение (0.5) долей
играть ноту (69) в течение (1) долей // ля
играть ноту (67) в течение (0.5) долей
играть ноту (72) в течение (0.5) долей // до
играть ноту (71) в течение (1) долей // си

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

14.3. Интерактивное пианино

Создайте 8 спрайтов-клавиш (белых).
У каждой — скрипт:

[Когда щёлкнут по этому спрайту]
установить эффект [яркость] в (50)
играть ноту (60 + (номер * 2)) в течение (0.4) долей
ждать (0.1) сек.
установить эффект [яркость] в (0)

Где номер — от 0 до 7 (можно задать через переменную при клонировании или отдельно для каждой клавиши).

Добавьте чёрные клавиши со смещением +1 — и будет настоящая октава.


15. Свои блоки — как создавать «функции»

image-23.png

15.1. Зачем нужны свои блоки?

Представьте, что вы часто пишете:

«Повернуть направо на 90°, сделать 100 шагов, повернуть на 90°, сделать 100 шагов…»

Это утомительно. Лучше один раз определить:

«Нарисовать сторону квадрата»

— и использовать эту команду как готовый блок.

В Scratch это называется «Создать блок» (в категории «Ещё»«Создать блок»).

15.2. Как создать блок?

  1. Нажмите «Создать блок»
  2. Название: нарисовать_квадрат
  3. «Добавить входные данные»размер (число), цвет (число)
  4. Нажмите «ОК» → появится заготовка:
    определить нарисовать_квадрат (размер) (цвет)
  5. Внутрь добавьте код:
    установить цвет пера в (цвет)
    опустить перо
    повторить (4)
    идти на (размер) шагов
    повернуть направо на (90)
    конец
    поднять перо

Теперь в палитре — новый блок нарисовать_квадрат (100) (120), как будто он всегда был.

image-33.png

15.3. Пример: «Анимация прыжка» как блок

определить прыжок (высота)
установить [прыгать v] в (высота)
повторять пока <(прыгать) > (-высота)>
изменить y на (прыгать)
изменить [прыгать v] на (-1)
ждать (0.02) сек.
конец
установить y в (пол) // возврат на землю

Теперь герой прыгает одной командой:

[Когда нажата [пробел]]
прыжок (15)

16. Как устроена игра на Scratch

Чтобы понять структуру проекта, полезно нарисовать блок-схему. В книге можно вставить схему в формате Mermaid — её легко генерировать и встраивать в Markdown.

Вот обобщённая схема типичного Scratch-проекта:

💡 Эту схему можно показать детям как «карту проекта» перед началом кодирования. Она помогает спланировать логику, не погружаясь в блоки.


17. Проектирование и отладка

17.1. Планирование перед кодом

Перед тем как брать блоки, задайте вопросы:

  1. Какая цель игры? («Собрать 10 монет, не касаясь врагов»)
  2. Кто участвует? (герой, монеты, враги, дверь)
  3. Какие правила?
    • Смерть при касании врага
    • Победа при 10 монетах
  4. Какие переменные нужны? (очки, жизни, игра_активна)
  5. Какие события? (🟢, пробел, получено сообщение [старт])

Можно нарисовать эскиз на бумаге — даже от руки.

17.2. Отладка: как искать ошибки

СимптомВозможная причинаКак проверить
Герой не двигаетсяНет всегда, или нет ждатьПосмотреть: есть ли бесконечный цикл?
Монета не исчезаетЗабыли спрятатьПроверить скрипт монеты: есть ли реакция на касание?
Очки не растутПеременная не глобальная / опечатка в названииКликнуть по (очки) — показывает ли текущее значение?
Клоны не удаляютсяНет удалить этого клонаОткрыть монитор клона: их слишком много?

17.3. Советы по отладке

  • Включите показ переменных на сцене — следите за изменениями в реальном времени.
  • Добавьте сказать на 0.5 сек в ключевые места: «Проверяю касание», «Добавляю очко» — чтобы видеть, доходит ли код до этого места.
  • Тестируйте по частям: сначала движение, потом сбор монет, потом враги.
  • Комментарии: в Scratch есть блок «комментарий» (серый, без разъёмов) — пишите пояснения прямо в коде.

18. Облачные переменные и онлайн-возможности

18.1. Что такое облачная переменная?

Обычная переменная сохраняется только на этом компьютере.
Облачная — сохраняется на серверах Scratch и видна всем, кто открывает проект.

Примеры использования:

  • 🏆 Лидерборд (топ-3 игроков)
  • 🌍 Мультиплеер (очень простой): один меняет ход_игрока, другой реагирует
  • 📝 Голосование: каждый клик — +1 к варианту

18.2. Как создать?

  1. Создайте переменную
  2. Поставьте ✅ «Облачная переменная»
  3. Готово — рядом появится значок ☁️

⚠️ Ограничения:

  • Только числа (строки и списки — нельзя)
  • Медленнее обычных (обновление с задержкой ~1 сек)
  • Защита от спама: нельзя менять чаще ~1 раза в секунду

18.3. Пример: «Онлайн-счётчик посетителей»

[Когда 🟢 нажат]
изменить [посетители ☁ v] на (1)
сказать (объединить [Вы — посетитель № ] и (посетители)) в течение (2) сек.

Первый запуск: 1, второй — 2 и т.д., даже с другого компьютера.

18.4. Облачные списки?

Scratch не поддерживает облачные списки. Но можно имитировать:

  • рекорд1 ☁, рекорд2 ☁, рекорд3 ☁
  • При новом рекорде:
    если <(очки) > (рекорд3 ☁)> то
    установить [рекорд3 ☁ v] в (очки)
    если <(очки) > (рекорд2 ☁)> то
    установить [рекорд2 ☁ v] в (рекорд3 ☁)
    ... и т.д.
    конец
    конец

🔮 Более гибкие решения — в других средах: Snap!, Python + Flask, но это — следующий уровень.