Как сделать игру Doodle Jump на Scratch
Кружок «Робикс» подготовил новый урок по разработке игр для начинающих. Его результатом станет игра Doodle Jump на Scratch. Будущим геймдизайнерам рекомендуется к прочтению и запоминанию!
В этом уроке нет ничего сложного и недоступного для новичков. Будем использовать Scratch – среду программирования для создания мультфильмов и видеоигр, пользоваться которой можно из браузера.
Внимательно следите за ходом урока. После прочтения приведенного ниже материала вы сможете модернизировать нашу игру и написать собственную.
Краткое описание игры Doodle Jump
Doodle Jump – это популярная в начале 10-х годов игра для мобильных устройств. Полтора миллиарда людей (столько скачиваний у этой игры в Google Play) часами пытались побить собственные рекорды. Суть крайне проста: на тетрадном листе нарисованный монстр прыгает по платформам.
На его пути встречаются как полезные предметы (пружины, реактивные ранцы, шапки-вертолеты), так и опасные инопланетяне, встреча с которыми не сулит ничего кроме поражения. Но самая коварная опасность, поджидающая на каждом прыжке, – это возможность упасть с платформы. Такой вариант мы и будем воплощать в жизнь далее.
Подготовка к написанию Doodle Jump на Scratch
В этой инструкции будем рассматривать только те функции и блоки, которые пригодятся во время создания игры с прыгающим монстром. Подробнее ознакомиться со Scratch можно здесь.
Цель игры – набрать как можно больше очков. После каждого падения придется начинать заново.
Игра будет состоять из двух элементов:
- персонажа – «дудлика»;
- платформ, по которым он прыгает.
При каждом касании платформы дудлик будет подпрыгивать, а сами платформы опускаться. А еще герой сможет перемещаться вправо-влево.
Создаем главного героя
Внешний вид игры во многом зависит от персонажа, которым предстоит управлять. Займемся же его созданием.
Для этого заходим в Scratch, где нас сразу же встречает улыбчивый кот. Можете оставить его главным героем игры, но мы кота безжалостно удаляем.
Разработчики Scratch предусмотрели два способа отправить спрайта в утиль: кликаем по изображению правой кнопкой мыши и выбираем «удалить»; просто нажимаем на мусорную корзину в правом верхнем углу.

Теперь создадим нового героя. Можно нарисовать его самостоятельно. Для этого надо навести курсор на синюю кнопку в правом нижнем углу и в списке выбрать «нарисовать». Мы же возьмем персонажа из встроенной галереи, которая открывается нажатием на синюю кнопку.
Перед нами открывается окно, в котором можно выбрать понравившуюся фигурку. Кажется, лягушке не терпится попрыгать по блокам, поэтому остановим выбор на этом спрайте.

На экране тут же появляется выбранный персонаж. Он слишком большой для нашей игры. Уменьшим его, изменив число в ячейке «размер» со 100 на 75. Значение указывается в процентах.
Учим спрайт двигаться
Для начала зададим спрайту исходное положение. Переходим слева в панель «События» и выбираем блок «когда зеленый флажок нажат». Перетаскиваем его на рабочую панель.
Далее во вкладке «Движение» находим блок «перейти в x … y …» и присоединяем его к предыдущему. Вводим значения x: -9, y: 11. Готово. Теперь при нажатии зеленого флажка спрайт будет перемещаться в центр экрана.
Научим же лягушку перемещаться по горизонтали. Добавляем цикл «повторять всегда» из вкладки «Управление». Он необходим, чтобы игра работала бесконечно (если сможем столько времени продержаться без проигрышей). Внутрь цикла вставляем блок «если …, то …» из той же вкладки. В качестве условия размещаем блок «клавиша … нажата» из вкладки «Сенсоры». В списке выбираем «стрелку вправо».
Начинкой будут блоки «повернуться в направлении» и «идти … шагов» из раздела «Движение». Вводим 90 градусов в первый блок и 10 шагов во второй.
Далее повторяем предыдущий шаг, но заменяем значение угла поворота на -90 градусов. В качестве условия выбираем пункт «стрелка влево».
Однако здесь возникает проблема. Вправо наш персонаж перемещается прекрасно, а вот налево ходит буквально на голове. Дело в том, что в Scratch предусмотрено два типа поворота: при помощи зеркального отражения и вращением на 180 градусов. По умолчанию используется второй вариант, но для реализации нашей задачи нужен первый.
Для этого вернемся на два шага назад – туда, где устанавливали начальные координаты. Добавим блок «установить способ вращения …» из раздела «Движение». Нужный вариант – «влево-вправо». Теперь программа работает как надо.
Падать тоже надо уметь
Что ж, ходить дудл научился, но над гравитацией в игре еще предстоит поработать. Давайте поправим работу законов физики.
Заходим в раздел «Переменные» и создаем новую под названием «Скорость падения». В начале игры она должна быть равной нулю. Выполним это условие, добавив перед циклом «выполнять всегда» блок «задать … значение …». Выберем нашу переменную и введем нулевое значение.
Пропишем математику для переменной. Разместим блок «изменять … на …» вслед за условиями перемещения вправо-влево. Выбираем переменную «Скорость падения» и вводим -1. Далее достаем из вкладки «Движение» блок «изменить y на…». Вместо числового значения перетаскиваем в окошко переменную. Теперь с течением времени скорость падения спрайта будет увеличиваться, создавая эффект гравитации. Можно это проверить, запустив программу нажатием зеленого флажка.
Учимся прыгать по платформам в Scratch
Теперь дудл готов карабкаться по платформам к самым высоким результатам. Только прыгать пока негде. Срочно исправляем ситуацию, добавляя новый спрайт – платформу.
Заходим в уже известную нам галерею. Выберем что-нибудь подходящее, например Button2. Этот спрайт не подходит в игру по геометрическим параметрам. Давайте его отредактируем.
Рис. 7. Добавление и изменение платформ
Для этого выбираем в левом верхнем углу вкладку «Костюмы». Открывается панель редактирования спрайтов. Зажмем левую кнопку мыши и выделим всю фигуру. Теперь можно растягивать и сужать ее.
Настало время настроить взаимодействие персонажа и платформ. Возвращаемся обратно в «Код» и переключаемся на лягушку. Во вкладке «Управление» выбираем блок «если … то …» и вставляем его в бесконечный цикл. Начинку будет составлять блок «касается …» из раздела «Сенсоры». В списке останавливаемся на Button2. Внутри условия задаем переменной «Скорость падения» значение 15 и изменяем положение y на 3.
«Скорость падения» влияет на высоту прыжка персонажа. Положение y – на плавность прыжка. При слишком маленьком значении может создаваться эффект прохождения героя сквозь платформу. Попробуйте поменять числа и подобрать оптимальные для вашей версии игры, ведь ее создание – занятие творческое.
Управляем платформами из игры Doodle Jump
На одной платформе далеко не упрыгаешь. Давайте увеличим их число до 4 (количество платформ можно менять).
До написания кода создадим переменную «Клоны». Она будет показывать, сколько блоков находится на экране.
Переходим в режим написания программы для Button2. Начинаем с блока «когда зеленый флажок нажат». Сперва спрячем платформу. Необходимый блок можно найти в разделе «Внешний вид». Далее задаем начальные значения: переменную «Клоны» обнуляем, а y устанавливаем в -160. Так платформы начнутся у нижнего края экрана.
Теперь настроим работу платформ во время игры. Перетаскиваем на экран цикл «повторять всегда». В него вставляем еще один цикл – «повторять пока не». Во вкладке «операторы» находим блок сравнения со знаком больше. Будем сравнивать переменную «Клоны» с числом 3. Таким образом, цикл закончит работу, когда количество блоков на экране станет равно 4 или больше.
Внутрь цикла добавим блок «создать клон самого себя» из вкладки «Управление». Следом изменим y на 100, чтобы каждый следующий блок создавался выше предыдущего. Затем увеличим переменную «Клоны» на 1. Если запустить игру сейчас, то блоки на экране выстроятся в линию. Чтобы это исправить, зададим случайное положение по x с разбросом от -240 до 240.
Продолжим на свободном пространстве рядом с веткой «когда зеленый флажок нажат». Началом выберем блок «когда я начинаю как клон». Далее заставим платформы показаться.
Заставляем Землю падать в Scratch
Игра приобретает похожий на оригинал вид. Не хватает только динамичности. Добавим эффект падения. Когда дудл будет отпрыгивать от платформы, та опустится. Для этого создадим еще одну переменную – «Скорость падения земли».
Перейдем в режим программирования дудла. Первым делом вынесем условие взаимодействия с Button2 на свободное пространство. Позже мы к нему вернемся. На его место в основной программе добавляем блок «если … иначе …». Проверять будем знак переменной «Скорость падения». Если она больше 0 (дудл летит вверх), «Скорость падения земли» делаем равной отрицательной «Скорости падения». Иначе «Скорость падения земли» приравниваем к нулю.
Настроим взаимодействие дудла с платформами. Добавляем еще один блок «когда зеленый флажок нажат». Далее всегда повторяем проверку знака переменной «Скорость падения». Если та меньше нуля, начинается цикл «повторять пока не …». В качестве условия вставляем оператор «не …». Теперь вернемся к отложенному ранее циклу. Его условие «касается Button2» вставляем внутрь оператора отрицания, действия перемещаем в цикл «повторять пока не …».
Переходим к программированию платформ. Наша задача – сделать так, чтобы пэд опускался вниз, когда дудл летит вверх. Если платформа достигает края экрана, она должна исчезать.
В ветку «когда я начинаю как клон» добавим цикл «повторять всегда». Будем изменять y на величину переменной «Скорость падения земли». Чтобы исчезали уходящие ниже платформы, создадим условие «если …, то …». Смотреть будем по положению y. Когда оно окажется меньше -160, изменим переменную «Клоны» на -1 и удалим одного клона.
Добавляем соревновательный момент в игру Doodle Jump на Scratch
Игра уже готова к использованию, но мы ее еще доработаем. Во-первых, необходимо добавить очки. Для этого введем еще одну переменную, которую так и назовем – «Очки». Далее в цикле «повторять всегда» будем изменять ее на единицу. Таким образом, очки в игре будут начисляться за время. Не забудем обнулить переменную, чтобы в начале игры счет начинался заново.
Немного изменим внешний вид экрана. Кликнем правой кнопкой мыши по отображению переменной на экране и выберем «крупный вид». Разместим окошко сверху в центре. Чтобы остальные переменные игрокам не мешали, скроем их, убрав галочку в разделе «Переменные». Теперь игра выглядит получше.
Game over? Как понять, что вы проиграли в Doodle Jump на Scratch
Далее настроим окончание игры при касании нижнего края экрана. Для этого создадим новый спрайт. Нарисуем красную линию в полную ширину экрана и разместим ее в самом низу.
Эта линия не испортит внешний вид игры! Установим спрайту эффект «прозрачность» на 100. Важно использовать именно эту команду. Она влияет только на отображение красной линии, остальные спрайты смогут с ней взаимодействовать. Это было бы невозможно, если бы мы использовали команду «спрятаться».
Теперь перейдем в окно дудла. Начнем новую ветку командой «когда зеленый флажок нажат». Будем повторять в цикле «всегда» проверку условия «если «касается «Спрайт1», то «передать сообщение». Создадим новое сообщение и назовем его «Проигрыш». После этого остановим «другие скрипты этого спрайта».
Остальным спрайтам аналогично пропишем остановку скриптов, когда они получат сообщение об окончании игры. Теперь о проигрыше знают все, исключая самого игрока. Выведем на экран «Game over». Для этого создадим текстовый спрайт, в который введем сообщение о поражении.
Программа действий для текста такова: пусть он прячется, когда нажат зеленый флажок. Как только получено сообщение «Проигрыш», текст будет появляться.
Последние мелочи
Эта часть программы работает, но добавим еще одну маленькую деталь в нашу игру Doodle Jump на Scratch. В оригинальной версии дудл, доходя до правой границы экрана, появлялся слева (и наоборот). Давайте реализуем и это.
Переходим в панель дудла. «Когда зеленый флажок нажат», запускается цикл «всегда». Если положение x больше 230, установим положение x в -230; если положение x меньше -230, установим положение x в 230.
Теперь игра останавливается, надпись отображается, очки обнуляются. Можем поздравить себя с успешно написанной программой и начать соревноваться с друзьями. А еще вы можете продолжить совершенствовать получившийся Doodle Jump на Scratch, добавляя новые фишки и находя креативные решения. Удачи!
Курсы Робикс, где изучается этот материал
Дополнительные материалы к статье
- Сайт программы Scratch ⤴
- Видеоверсия инструкции ⤴
- Блоки движения в Scratch
- Условия в Scratch
- Как создать фон в Scratch
Как сделать часы в скретч
Включив механизм поворота, Знайка перевёл ракету в горизонтальное положение, после чего включил основной двигатель и взял курс на видневшийся вдали город.
Николай Носов, «Незнайка на Луне»
Исполнитель в Скретч может не только двигаться по среде, но и поворачиваться!
Вот команды, которые позволяют выполнять повороты:
Спрайт вращается вокруг своего центра (центральная точка воображаемого прямоугольника, в который вписывается картинка). Вращать можно по часовой стрелке или против (вот почему предусмотрено две команды).
Центр вращения — центр спрайта. Вращение по и против часовой стрелки
Угол поворота измеряется в градусах от 0° (нет поворота) до 360° (полный оборот).
Угол поворота измеряется в градусах. Знаком градуса является символ °. Например, запись «45°» означает 45 градусов. (Заметим, что этим знаком обозначают не только углы, но и другие величины, например, температуру)
Наведите курсор мыши на спрайт, чтобы увидеть его поворот на обозначенный угол:
| Вращение по часовой стрелке | Вращение против часовой стрелки | ||
|---|---|---|---|
| на 45° | на 90° | на 45° | на 90° |
Задача 1 . Вращение спрайта ( 1 кук ). Заставить спрайт вращаться на месте вокруг своего центра.
Решение . В этом решении спрайт вращается по часовой стрелке:
Направление вращения легко сменить на противоположное, если заменить одну команду.
Задание 1 . Заставьте кота вращаться против часовой стрелки.
Задание 2 . Попробуйте изменить величину поворота, установив её сначала в 5, а потом в 25. Что происходит?
В белом окошке команды можно записывать число со знаком минус . Знак минус меняет направление поворота на противоположное.
Обе следующие команды будут поворачивать спрайт на 15° по часовой стрелке:
Задание 3 . Заставьте кота вращаться по часовой стрелке при помощи команды .
Задание 4 . Заставьте кота вращаться против часовой стрелки при помощи команды .
Направление спрайта
Знайка достал из кармана компас и стал определять направление, в котором летел шар.
Николай Носов, «Приключения Незнайки и его друзей»
Котёнок Мурлыка любил путешествовать. Обычно он выходил утром на крыльцо и решал, куда ему идти сегодня: на север, юг, запад или восток?
Иногда Мурлыка закладывал сложные маршруты: сначала шёл на северо-восток, потом — на юго-восток, затем — на запад, и, наконец, возвращался домой на северо-восток, мурлыкая под нос «Кукарачу» (его любимая песенка).
Однажды вечером Мурлыка познакомился с роботландским математиком Плюсиком .
Плюсик удивил Мурлыку , показав ему направления, принятые в среде Скретч :
Направления, принятые в среде Скретч . Рядом с направлением показана команда, которая устанавливает спрайт в указанном направлении
Отметим, что русский вариант названия команды не точно отражает оригинал на английском языке: point in direction — установить в направлении (а не «повернуть в направлении»). В дальнейшем использование этой команды в тексте учебника будет сопровождаться пояснением её реального действия: установить в направлении ( встать в направлении )
— Мур-мяу! — сказал Мурлыка . — Раньше я шёл на юг, а теперь мне надо идти в направлении 180° . А запад, так вообще, обозначается углом со знаком минус: −90° ! А если мне надо идти на северо-восток?
— Это направление обозначается углом 45° . Ничего, Мурлыка, ты быстро привыкнешь! Чтобы тебе было проще, я подготовил рисунок с указанием направлений в среде Скретч :
Направления в среде Скретч . Когда спрайт появляется в среде, он автоматически устанавливается по направлению 90° (направление «по умолчанию»). Рядом с направлением 45° показана команда, которая устанавливает спрайт в этом направлении
Видим, что направления от положения «вверх» до положения «вниз» через «направо» задаются углами от 0° до 180° .
Направления от положения «вверх» до положения «вниз» через «налево» задаются такими же углами, но со знаком минус. (Углы 180° и −180° задают одно и то же направление «вниз».)
Вопрос . Посмотрите на эти две команды. Будут ли отличия в результатах их исполнения?
Скрыть ответ
Ответ . Первая команда поворачивает спрайт вокруг его центра на 45° по часовой стрелке от текущего его направления. Вторая команда устанавливает спрайт в направлении 45° вне зависимости от текущего его положения.
Первая команды выполняет повороты , вторая устанавливает в направлении
Задача 2 . Отражение от стен. Мурлыка ( 2 кука ). Изобразить движение Мурлыки в комнате с отражением от стен из начального направления в 45° .
Решение . Мурлыку находим в библиотеке спрайтов в группе Животные . Первая команда в скрипте (после «шапочки» с указанием события) устанавливает исполнителя в направлении 45° . Затем начинается бесконечное движение с отражением от стен.
Важно : команда Идти перемещает исполнителя в текущем направлении.
Важно : отражение от стен выполняется по правилу «угол падения равен углу отражения»
По правилу «угол падения равен углу отражения» отражаются: луч света от зеркала, шарик от поверхности стола или от его стенок…
По правилу «угол падения равен углу отражения» отражаются лучи света от зеркала, шарик от поверхности теннисного стола или от бортика стола бильярдного…
Задача 3 . Отражение от стен. Мурлыка и шарик ( 2 кука ). Движение, которое совершает Мурлыка , более подходит шарику. Добавьте на сцену спрайт шарика и заставьте его двигаться вместе с Мурлыкой по тем же правилам.
Решение . Шарик находим в библиотеке спрайтов в группе Предметы . Понятно, что для шарика годится скрипт, написанный для Мурлыки . Копируем и запускаем мультик.
Исполнители работают под управлением двух одинаковых скриптов
Подробнее о паспорте исполнителя
Кот кричит:
— Отдавайте посылку!
— Какие у вас документы? — говорит почтальон.
— Лапы, хвост и усы! Вот мои документы.
Но Печкина не переспоришь.
— На документах всегда печать бывает и номер. Есть у вас номер на хвосте? А усы и подделать можно. Придётся мне посылку обратно относить.
Э. Успенский, «Трое в Простоквашино»
Свойства спрайта можно посмотреть и даже изменить в области Спрайты , расположенной под сценой:
В области Спрайты видим обложку паспорта для каждого спрайта
Чтобы увидеть свойства спрайта нажмите пиктограмму в левом верхнем углу обложки паспорта. Паспорт откроется:
Свойства спрайта
Посмотрите, что содержит паспорт каждого исполнителя:
| Вид | Название | Менять | Пояснение |
|---|---|---|---|
| Имя | Нужно! | Кукарача советует давать свои имена спрайтам. |
Рекомендуется устанавливать нужное направление не в паспорте, а в программе.
- кругом (поворот на 180°),
- влево-вправо,
- не вращать.
Свойство актуально, когда сцена разворачивается кнопкой на весь экран.
Рекомендуется устанавливать видимость не в паспорте, а в программе.
Сцена — это тоже исполнитель!
Неожиданно занавес открылся, и все увидели за ним сцену. На сцену вышла поэтесса Самоцветик и закричала:
— Тишина! Тишина! Сейчас будет концерт. Внимание!
Николай Носов,
лПриключения Незнайки и его друзей
— Друзья! Вы будете смеяться, но сцена в Скретч — это тоже исполнитель!
Для сцены можно заготавливать свой гардероб лкостюмов (лкостюм для сцены называется лфоном), собирать коллекцию звуков, создавать скрипты.
Задача 4 . Прогулка на авто ( 3 кука ). Автомобиль катит по дороге под весёлую музыку. Щелчок на сцене меняет сельский ландшафт на городской пейзаж. И наоборот.
Сцена/Вид . Подготовим сцену: выделим (щелчком) её паспорт, добавим два новых фона из библиотеки, начальный белый фон удалим, а для оставшихся запишем подходящие имена — село и город .
Добавить фон можно в области паспорта сцены или на вкладке Фоны
Сцена/Звуки . На вкладке Звуки загрузим для сцены (её паспорт должен быть выделен) два подходящих звука:
Звук zoop находим в разделе Эффекты , звук drive around — в разделе Музыкальная петля
Звук zoop будет реакцией на щелчок, а мелодия drive around будет звучать во всё время работы программы.
Сцена/Скрипты . Первый скрипт запускает щелчок на сцене. В нём выполняются две команды — звучит zoop (имитация щелчка) и меняется фон.
Скрипты для сцены
Второй скрипт запускает зелёный флажок. Сцена принимает вид село , затем в цикле бесконечно проигрывается мелодия drive around .
- Конструкции, которые заставляют повторять вложенные в них команды, программисты называют циклами . В Скретч одной из таких конструкцией является блок Всегда :
Этот блок заставляет бесконечно выполнять вложенные в него команды. Команды выполняются друг за другом, по порядку (не одновременно!) пока программа не будет остановлена.
Сделаем ещё одно, не менее важное, замечание.
Скрипт для сцены под шапочкой Когда кликнут по сцене , можно разбить на два. Какой вариант лучше, первый или второй?
Вариант 1
Команды в одном скрипте работают последовательно. Сначала играет звук (до конца), затем (когда звук закончится) меняется фон
Вариант 2
Скрипты под одинаковыми шапочками работают параллельно (одновременно)
Если планируется менять фон после того, как закончится звук, выбираем первый вариант. Если фон должен меняться по щелчку сразу, не дожидаясь окончания звука — второй.
Команды в одном скрипте работают последовательно , а команды в разных скриптах с работают параллельно (одновременно).
Спрайт/Вид . В библиотеке в группе Транспорт выберем картинку car bug и назовём спрайт авто . Установим спрайт на сцену и уменьшим его.
Щёлкните на пиктограмме и преобразованным курсором несколько раз на спрайте
Спрайт/Скрипты . Составим хорошо знакомый скрипт движения влево-вправо с отталкиванием от краёв сцены:
Скрипт для спрайта
Важное замечание.
Команды подготавливают спрайт к работе. Эти команды выполняется один раз , а потом работает бесконечный цикл.
Результат получается примерно таким:
Видео проекта можно посмотреть по адресу: video/01/unit02/Walk_on_a_car.mp4
Видео проекта: video/01/unit02/Walk_on_a_car.mp4
Загрузка анимированного gif как фона для сцены
В уроке 1 было отмечено, что если в качестве изображения для спрайта загрузить анимированный gif , он автоматически разделяется на составляющие картинки-костюмы.
Аналогичное правило работает и для сцены: если в качестве изображения для сцены загрузить анимированный gif , он автоматически разделяется на составляющие картинки-фоны.
Составив скрипт смены этих фонов, можно запрограммировать анимацию для сцены.
О важности ТЗ
— Чтобы научиться плавать, — говорит Кукарача , — надо прыгнуть в воду! А чтобы научиться создавать программы, надо программировать!
Мы полностью согласны с Кукарачей , и призываем вас не жалеть времени и усилий на выполнение проектов, то есть на «творение» программ.
Отметим, что странички с проектами содержат не только задания, но и важные рекомендации, позволяющие составлять хорошо работающие программы, такие, которыми будет доволен сам Кукарача !
Раздел с проектами этого урока особенно важен: в нём рассказано, как составлять техническое задание (ТЗ) на проект. Отнеситесь к этим рекомендациям очень внимательно.
Без ТЗ на заводе не станут собирать автомобиль, а в софтверной фирме не станут собирать код программы.
— это подробное описание свойств создаваемого продукта.
ТЗ составляет человек или фирма, которые заказывают продукт ( Заказчик ). ТЗ передаётся человеку или фирме, которые создают продукт ( Исполнитель ).
ТЗ необходимо, как для Исполнителя (он создаёт продукт, руководствуясь ТЗ ), так и для Заказчика (он начинает лучше понимать, что ему нужно).
Если фирма или человек заняты разработкой новых продуктов (не на заказ), то они составляют техническое задание сами для себя — ТЗ позволяет уточнить поставленные цели, определиться со свойствами продукта, в том числе, с интерфейсом и дизайном.
В работе над Скреч -проектами вам придётся, в одних случаях создавать программный продукт, руководствуясь заданным ТЗ , в других — самим разрабатывать ТЗ , опираясь на постановку задачи и отдельные рекомендации.
— Почему ТЗ так важно? — спросил Лисёнок у своего учителя.
— Потому, — отвечал Кукарача , — что ТЗ , как математика, ум в порядок приводит и словно нить Ариадны ведёт программиста к заветному результату!
Как составлять ТЗ описано на страничке с проектами к этому уроку.
Как остановить работу скриптов
Задача 5 . Музыкальный лев ( 3 кука ). Лев живёт в пустыне и очень любит слушать музыку. Соберите программу, которая запускает 3 музыкальных эпизода по описанным ниже правилам.
Картинку фона и два «костюма» льва можно взять из библиотеки, встроенной в среду Скретч .
| Эпизод | Запуск | Описание |
|---|---|---|
| Начальный | Зелёный флажок и клавиша 0 | Лев в 1-ом костюме, уменьшенный на половину (т. е. на 50%), слушает музыкальный фрагмент garden |
| Первый | Клавиша 1 | Лев во 2-ом костюме, в исходных размерах, слушает музыкальный фрагмент drum machine |
| Второй | Клавиша 2 | Лев в 1-ом костюме, в исходных размерах, слушает музыкальный фрагмент dance snare beat |
Таким образом, при запуске программы зелёным флажком Лев слушает начальную мелодию ( garden ). Клавиши 1, 2 и 0 переключают эпизоды. На видео показано, как работает программа при цепочке нажатий: флажок–1–2–0 .
Видео проекта можно посмотреть по адресу: video/01/unit02/lion.mp4
Видео проекта: video/01/unit02/lion.mp4
Решение . Исполнитель будет реагировать на 4 события: флажок и клавиши 1, 2, 0. Для каждого события нужен отдельный скрипт. Запишем, что должны делать эти скрипты.
1. Сменить костюм на 1-ый
2. Установить размер 50%
3. Бесконечно играть мелодию garden
Блок управления/Ждать () секунд
Ждать () секунд — это Блок управления, по форме обычный блок. Он останавливает скрипт на указанное кол-во секунд. Задержка может быть целым и дробным числом. Дробные числа надо писать через точку.
Этот блок один из самых используемых блоков; он используется когда спрайт должен ждать для другого действия.
- 1 Примеры использования
- 2 Обходные пути
- 2.1 Используя таймер
- 2.2 Используя Плыть () секунд в точку x: () y: ()
- 2.3 Используя Говорить () () секунд
- 2.4 Используя Пауза в течении () бит
- 2.5 Используя Играть звук () до конца
Примеры использования
Этот блок делает паузу, когда он нужен. Т. к. есть много ситуаций где это нужно, блок используется в многих проектах. Некоторые частые использования:
повторять всегда ждать (60) секунд следующий костюм end
- Задержка в анимации
повторить (10) раз ждать (0.05) секунд следующий костюм end
- Виртуальные симуляции
ждать (300) секунд передать [Утро v]
- Задавать переменным нужное значение в Java-плеере
когда щёлкнут по зелёному флагу задать [переменная v] значение (0) ждать (0) секунд задать [переменная v] значение (1)
- В Flash-плеере позволять странице перезагрузиться для того, чтобы спрайты могли чувствовать объекты нарисованные пером.
печать перейти в x: (-50) y: (0) ждать (0) секунд повторять пока не изменить x на (1) ждать (0) секунд
Обходные пути
Этот блок может быть реплицирован с помощью любых из этих скриптов:
Используя таймер
сбросить таймер ждать до >
Однако если проекту нужно сбросить таймер для других целей, другой обходный приём должен быть использован.
задать [переменная v] значение (таймер) ждать до >
Данный обходный приём использует таймер за базу вместо часов, сделанные через скрипт; такие часы лагают из-за нужного кол-во времени для смены переменной часов.
Используя Плыть () секунд в точку x: () y: ()
плыть (длина задержки) секунд в точку x: (положение x) y: (положение y)
Данный обходный приём запутает движение, которое делает спрайт, поэтому лучше этот приём использовать на неподвижных спрайтах.
Используя Говорить () () секунд
говорить () (длина задержки) секунд думать () (длина задержки) секунд
Эти два обходных приёма разрушат то, что спрайт сейчас думает или говорит в течении длины задержки, так что лучше его использовать на спрайтах, которые ничего не говорят или думают.
Используя Пауза в течении () бит
пауза в течении (длина задержки) бит :: music
Используя Играть звук () до конца
Подразумевается, что звук нужной длины для задержки. играть звук [звук тишины v] до конца
идти () шагов
повернуть вправо на () градусов
повернуть влево на () градусов
перейти на ( v)
перейти в x: () y: ()
плыть () секунд к ( v)
плыть () секунд в точку x: () y: ()
повернуться в направлении ()
повернуться к ( v)
изменить x на ()
установить x в ()
изменить y на ()
установить y в ()
если касается края, оттолкнуться
установить способ вращения [ v]
СОЗДАНИЕ МИНИ-ПРОЕКТА «ЧАСЫ» В ПРОГРАММНОЙ СРЕДЕ SCRATCH
В статье представлена методическая разработка урока информатики для учащихся пятых классов. Показано создание модели часов с анимацией в периоды: утро, день, вечер и ночь. Часть действий исполнителей выполняется параллельно. Предлагаемый урок является частью авторского программного модуля «Пропедевтика программирования со Scratch».
Ключевые слова
Об авторе
школа с углубленным изучением английского языка № 1319
РоссияСписок литературы
1. Босова Л. Л. Параллельные алгоритмы в начальной и основной школе // Информатика в школе. 2015. № 2.
2. Воеводин В. В. Вычислительная математика и структура алгоритмов. М.: Изд-во Московского университета, 2006.
3. Иванова Н. Г., Плаксин М. А., Русакова О. Л. Конкурс «ТРИЗформашка» как площадка для апробации заданий на параллельное программирование // Информатика в школе: прошлое, настоящее и будущее: Материалы Всеросс. науч.-метод. конф. по вопросам применения ИКТ в образовании, 6-7 февраля 2014 г.; Перм. гос. нац. исслед. ун-т. Пермь, 2014.
4. Кучев А. Д., Плаксин М. А. Параллельные вычисления в школьной информатике. Игра «Танковый экипаж» // Информатика в школе. 2016. № 9.
5. Плаксин М. А. О методике начального знакомства с параллельными вычислениями в средней школе // Информатика в школе: прошлое, настоящее и будущее: Материалы Всеросс. науч.-метод. конф. по вопросам применения ИКТ в образовании, 6-7 февраля 2014 г.; Перм. гос. нац. исслед. ун-т. Пермь, 2014.
6. Плаксин М. А. Подготовка методики преподавания темы «Параллельные вычисления» в средней школе. https://www.hse.ru/pubs/share/direct/document/186361407
7. Создавайте истории, игры и мультфильмы. Делитесь с людьми по всему миру. https://scratch.mit.edu/
8. Сорокина Т. Е. Методика раннего общедоступного программирования в основной образовательной программе // Современные информационные технологии и ИТ-образование: Материалы XI Международной научно-практической конф., 25-26 ноября 2016 года; МГУ им. М.В. Ломоносова. М., 2016.