- Расширение «Перо»
- Подготовим спрайты как будущий движущийся фон
- Пишем код для скроллинга в скретч
- Программирование мини-игры в программе Скретч
- 1 этап. Создание игрового поля
- 2 этап. Расстановка игровых объектов
- 3 этап. Программирование «героя»
- Этап 4. Программирование собираемых объектов
- Этап 5. Программирование препятствий
- Этап 6. Программирование кнопки финиш
- Заключение
Расширение «Перо»
В Scratch кроме стандартных категорий блоков таких как «Движение», «Внешний вид» и так далее, которые сразу доступны во всех проектах, имеются другие. Их называют расширениями или дополнениями. Чтобы увидеть все доступные расширения, надо нажать на кнопку «Добавить расширение», которая находится на вкладке «Код» в самом низу. После этого откроется окно, где можно выбрать дополнение.
Большинство дополнений предполагают использование внешних устройств, таких как камера, робот и другие. Однако не все.
После выбора расширения «Перо» во вкладке «Код» среды программирования Scratch появляется новый раздел с блоками-командами, которые позволяют рисовать на сцене. Это значит, что спрайты при перемещении смогут оставлять после себя видимую линию.
Вот пример сценария для кота:
Проиграв его, получим такую картину:
Когда у спрайта поднято перо, то он не оставляет линии при перемещении. Когда перо опущено, как бы вы не перемещали спрайт из точки А в точку Б, от А до Б будет рисоваться линия установленного цвета и толщины.
Команда «печать» отпечатывает изображение спрайта в том месте, где он находится.
В Scratch можно создать сценарий, когда при его запуске пользователь сам будет рисовать, перемещая героя. Добавим на сцену спрайт-карандаш и запрограммируем его следующим образом:
Игру следует запускать в полноэкранном режиме. В режиме программирования скрипт не сможет правильно работать.
После запуска карандаш можно перемещать мышью, и он будет оставлять след. Можно намалевать на сцене что-угодно. Однако линия будет выходить не из кончика карандаша, а его середины, что неправильно. Исправляется это редактированием костюма.
В центре холста есть чуть видимая точка, которая обозначает центр спрайта. Именно из этого центра рисуется линия. Надо переместить к центру холста кончик карандаша.
Рисовать мышью не совсем удобно. Поменяем управление на клавиатуру:
Теперь карандаш управляется стрелками клавиатуры. Когда мы нажимаем пробел, то попеременно меняем состояние пера. Поднимая перо, мы можем перемещать карандаш по сцене без рисования линии.
Сценарий спрайта можно усложнить, добавив к нему скрипты смены толщины пера и цвета. Пусть цвет, например, задается случайным образом:
А что если мы хотим, чтобы карандаш печатал не самого себя, а какой-то другой спрайт? Этот другой спрайт должен появляться из кончика карандаша при нажатии, скажем, клавиши 0.
Тогда этому спрайту надо как-то передать координаты карандаша. Однако проще воспользоваться командой «перейти на …», в которой вместо «случайное положение» следует выбрать имя спрайта-карандаша.
Составьте программу, которая при запуске выводит на сцене окружность, состоящую из печатей спрайта.
Новая тема по детскому программированию будет посвящена движению спрайта за счет плавной смены заднего фона — иначе говоря скроллинг в скретч по координатам Х. Создание каждой компьютерной игры потребует от юного программиста уметь пользоваться рассматриваемым программным кодом и понимать принципы взаимодействия спрайтов при использовании этого метода. Если вы впервые в моем блоге, то обязательно посмотрите предыдущие уроки по scratch: движение спрайта, прыжок спрайта, изменение внешнего вида спрайта, рисуем объекты самостоятельно и другие. Остальным же предлагаю отправиться в мир переменных, условий и циклов вместе со мной!
Подготовим спрайты как будущий движущийся фон
Первым делом надо провести графическую работу и нарисовать один спрайт (№ 1 на принт-скрине ниже), сделать его дубль (№ 2), и добавить еще один спрайт из коллекции скретч. Фон так же стоит нарисовать по аналогии со спрайтами. Если вы не знаете как рисовать в scratch, то посмотрите предыдущие материалы в моем блоге. Должно получиться как на картинке ниже:
Плавная смена фона и движение спрайта в Скретч
Как вы уже догадались, движение фона будет реализовано за счет постепенной смены нарисованных спрайтов. Причем, спрайты будут автоматически подставляться друг за другом до бесконечности! Фон же нарисован для сглаживания этого перехода. На старых игровых приставках движение объекта было возможно сделать только в одном направлении, на новом уроке по программированию мы пойдет по такому же алгоритму и реализуем только движение объекта вправо, без возврата назад.
Подумать и постараться реализовать движение в обоих направлениях. При смене направления движения запрограммировать разворот спрайта в нужную сторону.
Пишем код для скроллинга в скретч
В левом меню визуального программирования найдем раздел отвечающий за переменные и создадим в нем три разных блока переменных: ScrollX, Times, Clones. Из картинки выше выбираем Спрайт 2 и переносим в него несколько блоков из меню визуального программирования. Первым делом опишем события, которые последовательно произойдут после нажатия на Зеленый флажок. Зададим начальные данные для переменных, отцентрируем нарисованный спрайт, дадим ему команду появиться и добавим условия для последующего плавного движения. Должен получиться следующий древовидный блок:
Находясь в предыдущем спрайте напишем код для изменения значений в переменной ScrollX. Именно за счет этого куска программного кода регулируется скорость скроллинга в скретч, поиграйтесь с числами и посмотрите что получится! Визуальный блок должен получиться следующего вида:
Третий кусок кода я приведу только как набор программных блоков, так как он будет домашним заданием. Наберите следующий код:
После полного написания кода для скроллинга и проверки его работоспособности раздели этот код, как показано выше и посмотри, что получится. Как объяснить получившийся эффект и за что отвечает этот кусок кода?
Переходим ко второму спрайту. Добавляем код по событию — Нажать зеленый флажок. Далее программируем показаться спрайту, размещаем его по центру и добавляем под постоянный цикл условие для движения спрайта в зависимости от значения в переменной ScrollX. Должен получиться следующий код:
Программирование мини-игры в программе Скретч
На свете существуют множество языков программирования, но программирование для детей проще начинать с программ, которые предполагают создание игровой ситуации с героями или объектами, которые двигаются, меняются или взаимодействуют. К таким программам относятся ПервоЛого и ЛогоМиры, а также программа Скретч (Scratch), бесплатно распространяемая для любой операционной системы. Сайт находится по адресу http://scratch.mit.edu. С января 2019 года разработчики выпустили новую версию 2.0. Она немного отличается от предыдущих версий.
В основе Scratch лежит графический язык программирования. Для того чтобы создать скрипт (программу для каждого объекта) нужно просто совместить графические блоки вместе, перетаскивая готовые блоки из левого поля в поле создания скрипта (программы).
Блоки разбиты на несколько типов:
Блок «Перо» в новой версии надо добавлять из меню «дополнительные блоки».
На уроках информатики учащиеся постепенно знакомятся с командами различных блоков и их использованием. Это позволяет на одном из уроков перейти к реализации проекта по созданию мини-игры.
Во многих компьютерных играх игровое поле представляет собой площадку, разбитую на квадраты (как шахматная доска), и требуется собрать какие-либо предметы – это могут быть яблоки, монеты, звезды или что-то другое. Для краткости будем называть эту игру «Собери» (презентация).
Для создания игры нам необходимо проделать несколько этапов:
1 этап. Создание игрового поля
Для создания игрового поля мы должны войти в меню «Сцена», вкладка «Фоны» и с помощью инструментов для рисования «прямоугольник» и «линия» создать поле 8х8 клеток. (рис. 1). Такого размера вполне достаточно для создания первой игры. При желании можно добавить какой-либо текст (кнопка Т).
Рис. 1. Создание игрового поля.
2 этап. Расстановка игровых объектов
На втором этапе мы расставляем объекты разных видов (рис. 2 и 3). Для этого используем добавление спрайтов из библиотеки. Объекты в нашей игре будут двух видов – те, которые по условию надо собрать (например, яблоки), и те, которые будут являться препятствиями. Количество объектов можно задавать самостоятельно. Рекомендую размер объектов уменьшить до 50.
Рис. 2. Добавление объектов на игровое поле.
Рис. 3. Добавление объектов-препятствий на игровое поле.
3 этап. Программирование «героя»
В качестве героя можно оставить исходного спрайта-котенка под именем «Спрайт1». При желании можно выбрать (назначить) «героем» любого другого. Имя спрайта также можно изменить.
В начале игры наш герой должен встать в исходную точку, которую мы определяем с помощью координат. Поэтому команда должна выглядеть так:
Рис. 4. Задание начальной координаты для спрайта.
При необходимости можно задать и начальное направление – например, «повернуться в направлении 90».
Далее для того, чтобы наш спрайт ходил сразу по клеткам, мы должны запрограммировать кнопки управления его передвижением (стрелки вверх, влево, вправо, вниз), которые удобно расположены на клавиатуре.
Команды для кнопок должны выглядеть следующим образом:
Рис. 5. Программирование управляющих кнопок (стрéлок).
Этап 4. Программирование собираемых объектов
Для того, чтобы любой объект реагировал на прохождение «героя» и мог менять свою форму или исчезать, необходимо, чтобы он совершал небольшое движение. Это можно задать двумя способами:
Рис. 6. Команда для собираемых объектов.
Чтобы объекты можно было «восстановить» в начале игры задаем дополнительную команду:
Рис.7. Команда для «восстановления» объектов.
Эти команды надо задать для каждого собираемого объекта (яблока, монеты или звезды).
Этап 5. Программирование препятствий
На игровом поле должны также присутствовать объекты, которые будут усложнять игру, т.е. являться препятствиями. Чтобы они могли взаимодействовать с героем, когда он попадает на соответствующую клетку, необходимо им также задать небольшое движение (аналогично собираемым объектам).
Взаимодействие с героем можно задавать по-разному: препятствие может «взрываться», «переворачиваться» (т.е. изменить свой костюм), выдавать сообщение «Ты проиграл» или «Здесь ходить нельзя» и т.д. Можно задать команду, которая будет перемещать героя в начало игры, т.е. в исходную точку. Варианты могут придумать сами дети. В начале игры также надо вернуть этим объектам исходный костюм.
Рис. 8, 9. Программирование препятствий.
Этап 6. Программирование кнопки финиш
По желанию можно создать кнопку «Финиш» и поместить ее в конце игрового поля. Кнопка «Финиш» программируется аналогично предыдущим объектам. Отличие будет в тех командах, которые будут выполняться при реакции на прохождение Спрайта. Например, можно задать «Говорить «Ты победил!» или «Переходи на второй уровень» и при этом кнопка может менять цвет или мигать и т.д. Здесь дети могут использовать свою фантазию и желание.
Рис. 10. Изменение кнопки «Финиш».
Рис. 11. Программа для кнопки «Финиш».
Заключение
Подобную игру можно создать за 1 урок или одно занятие. Практика показывает, что подобные задания дети выполняют с удовольствием и могут проявить фантазию или использовать более сложный набор команд для создания подобной игровой ситуации. При этом ученики не замечают, как знакомятся с программированием и таким важным моментом, как отладка программы, которая требует усидчивости, терпения и умения видеть и исправлять ошибки в своей программе.
Scratch действительно относится к группе мультимедийных развивающих сред программирования.