Введение
Современные дети много времени проводят, играя в компьютерные игры. Полностью исключить их из жизни ребенка невозможно и даже нецелесообразно. Занятие разработкой собственных игр позволяет потратить это время с пользой, получить новые полезные навыки, развить воображение и логическое мышление.
В прошлом учебном году наш класс посетил мероприятие «Неделя детской книги» в Челябинской областной библиотеке имени В. Маяковского, где в читальном зале мы встречались с известными детскими поэтами Южного Урала – Еленой Сыч и Янисом Грантсом. На стенде читального зала мое внимание привлекли яркие книги Дениса Голикова «Scratch для юных программистов». В этот день я не смогла взять заинтересовавшие меня книжки на дом, потому что не записана в филиал библиотеки, предназначенный для среднего школьного звена. Но смогла сделать это в другой день на формуляр старшего брата.
Благодаря книгам Дениса Голикова изучить визуальный язык программирования Scratch оказалось интересно и просто. Для этого необходимо иметь компьютер или планшет и установить на него бесплатный редактор Scratch с сайта https:\\scratch.mit.edu\download.
Программирование на Scratch – очень увлекательное занятие. Я регулярно занималась изучением Scratch на летних каникулах, особенно весело было это делать в компании братьев и друзей. Я научилась создавать мультфильмы, игры, рисовать в графических редакторах и программировать музыку.
Цель: разработка компьютерной игры на языке программирования Scratch о полете собаки.
Принципы: игрок управляет летающей собакой, обходя препятствия в виде труб, и зарабатывает очки, собирая золотые монеты. Игра заканчивается при наборе определенного количества очков надписью «Победа!»
Задачи:
Изучить принципы и возможности языка программирования Scratch;
Разработать собственную компьютерную игру на платформе Scratch;
Обобщить и проанализировать отзывы ключевых пользователей о компьютерной игре;
Заинтересовать учащихся изучением языка программирования Scratch и созданием собственных проектов.
Этапы:
Подбор литературы и интернет-источников о программировании на Scratch;
Установка программы Scratch Offline Editor на персональный компьютер и знакомство с интерфейсом;
Выполнение практических заданий из учебников Д. Голикова и изучение возможностей Scratch;
Разработка концепции собственной компьютерной игры на Scratch;
Анализ возможности реализации игры средствами среды программирования Scratch;
Визуализация проекта: выбор персонажа, фона, создание в графическом редакторе прочих элементов игры;
Написание программы;
Тестирование программы разработчиком;
Тестирование программы пользователями;
Сбор анкет и анализ данных о тестировании компьютерной игры.
Глава 1
Scratch - среда программирования для детей
Scratch создан в лаборатории Lifelong Kindergarten Массачусетского технологического института под руководством профессора Митчела Резника в 2007 году.
Scratch - это визуальный язык программирования, в котором программа складывается из разноцветных блоков. То есть ребенку не требуется печатать текстовые команды, в Scratch он манипулирует графическими элементами, перетаскивая их мышкой, и составляет из них свою программу, будто собирает конструкцию из кубиков Lego.
Основным и самым важным для меня источником информации о языке программирования Scratch явились книги российского программиста Дениса Владимировича Голикова. Я изучила два его бестселлера «Scratch для юных программистов» и «40 проектов на Scratch для юных программистов». В этих книгах очень подробно, по шагам, разбирается создание проектов с необходимыми пояснениями. И в конце каждого урока приведены задания для самостоятельного выполнения.
Также в изучении Scratch мне помог канал школы программирования для детей «Пиксель» на YouTube @clubpixel.
Существует два способа работы в среде Scratch: в онлайновом редакторе на сайте https:\\scratch.mit.edu и в офлайновом редакторе, который можно скачать с этого же сайта.
Интерфейс Scratch выглядит следующим образом:
Рисунок 1 Интерфейс Scratch
Белое поле справа - это сцена, на ней будет видно, как работает проект. По сцене будут перемещаться персонажи, их называют спрайты. Сейчас на сцене всего один спрайт - кот.
Все спрайты проекта находятся в области спрайтов, которая расположена под сценой. Там есть возможность задать размер спрайта, его направление, координаты первоначального расположения на сцене, а также выбрать фон для сцены. В центре сцены координаты x=0 и y=0. От центра идет 240 пикселей влево и вправо и 180 пикселей вверх и вниз. Таким образом, вся сцена имеет размер 480x360 пикселей.
В центре - огромная область скриптов. Скрипт - это набор команд, который необходим для выполнения задачи. В этой области собираются скрипты проекта из разноцветных блоков, которые хранятся в палитре блоков, расположенной слева. На рисунке выбраны синие блоки Движение. В область скриптов блоки перетаскиваются мышкой. Блоки имеют защелки, которые не позволяют соединить между собой несовместимые блоки.
На экране мы видим следующую программу: когда нажата клавиша «Пробел», спрайт идет 10 шагов вперед. Один шаг равен длине 1 пикселя, т.е. при нажатии на клавишу «Пробел» кот продвинется вперед на 10 пикселей.
В палитре блоков есть следующие разделы блоков:
- блоки, отвечающие за движение спрайтов (с их помощью спрайт можно заставить идти, повернуть, плыть, перейти, установить способ вращения и т.д.);
- блоки, отвечающие за внешний вид спрайтов (с их помощью спрайт можно заставить говорить и думать, как в комиксах, менять костюм, размер и цвет, применять к спрайту различные эффекты, такие как, размытие, прозрачность и т.д.);
- блоки, отвечающие за издаваемые звуки (здесь есть возможность добавить звуки из медиатеки или записать собственные).
- блоки события - это начальные блоки любого скрипта. Они определяют условие, при выполнении которого, начинает работать программа. Например, при нажатии определенной клавиши, при нажатии на спрайт, при получении сообщения.
- блоки управления - это блоки циклов (повторение) и условий (если, то).
В среде Scratch есть возможность установить различные расширения, такие как «Перо», «Музыка», «Видеораспознавание», «Перевод», а также расширения для программирования некоторых серий конструктора Lego с блоком управления, таких как Lego Boost или Lego Mindstorms. Я опробовала расширения «Перо» для программного рисования и «Музыка».
Глава 2
Создание компьютерной игры в среде Scratch
По мотивам одной из моих любимых игр на телефоне - «Space Corgi» я решила попробовать реализовать в Scratch собственный проект про летающую собаку под названием «Flappy Dog».
Правила игры: игрок управляет летающей собакой, обходя препятствия в виде труб, и зарабатывает очки, собирая золотые монеты. Игра заканчивается при наборе 10 очков надписью «Победа!»
В качестве фона для игры «Flappy Dog» я выбрала звездное небо.
Рисунок 2 Интерфейс игры "Flappy Dog"
Для реализации проекта потребовалось создать следующие спрайты: персонаж (собака), препятствия (трубы), золотые монеты, кнопка «PLAY» и надпись «Победа!».
Рисунок 3 Спрайты для игры «Flappy Dog»
Спрайт собаки я выбрала из медиатеки среды Scratch, а остальные спрайты нарисовала в графическом редакторе.
Так как трубы в течение игры меняют свою длину, а монетки - количество и расположение, то для этих спрайтов потребовалось создать несколько костюмов, которые будут меняться случайным образом по мере прохождения игры.
Рисунок 4 Костюмы для спрайта "Трубы"
Звуковые эффекты я выбрала из медиатеки Scratch: для собаки - лай, а при касании персонажем монет - звон монет.
Текст программы
В Scratch скрипт составляется из блоков отдельно для каждого спрайта.
К
Рисунок 5 Скрипт для кнопки «PLAY»
од для кнопки «PLAY» очень простой. При нажатии на флажок она появляется в определенной точке экрана.
При нажатии на кнопку «PLAY», она прячется и передает сообщение «Старт», которое является для других спрайтов условием начала выполнения кода.
Рисунок 6 Скрипт для спрайта «Собака»
Это скрипт для спрайта «Собака». Когда нажат флажок, собака переместится в точку экрана с координатами (-100; 3).
Когда будет получено сообщение «Старт», собака начнет двигаться вертикально вверх или вниз (вдоль координатной оси Y), при касании трубы игра остановится.
Рисунок 7 Скрипт для спрайта «Собака» продолжение
Когда будет получено сообщение «Старт», при каждом нажатии на клавишу «Пробел» спрайт будет изменять координату Y на 3 пикселя (то есть быстро подниматься вверх) и издавать звук «лай»; если клавиша «Пробел» не нажата, то спрайт будет менять координату Y на -0,5 пикселя (то есть плавно опускаться вниз). Вдоль оси координат Y собака будет двигаться непрерывно до полной остановки игры, координата Х при этом для нее остается неизменной.
В
Рисунок 8 Скрипт для спрайта «Трубы»
скрипте для спрайта «Трубы» мы задаем переменную «Очки» и выводим ее на экран, также устанавливаем условие окончания игры в случае, когда очков наберется более 9.
Когда спрайт «трубы» получит сообщение «Старт», то начнет выполняться цикл (многократное повторение одних и тех же действий): сначала случайным образом будет выбран костюм для спрайта, затем спрайт отразится в крайней правой точке экрана с координатами (240;0) и будет постепенно продвигаться на 4 пикселя влево, до тех пор, пока не коснется левого края экрана. Как только спрайт коснется левого края экрана, цикл повторится сначала.
Ч асть кода для монет повторяет код для труб, единственное отличие в том, что выполнение цикла начинается с задержкой в 2,2 секунды. Это позволяет спрайтам трубы и монеты не наслаиваться друг на друга.
Рисунок 9 Скрипт для спрайта "Монеты"
Этот код отвечает за исчезновение монет, за проигрывание звука и за начисление очков при соприкосновении монет с собакой. В случае, если монеты две (это костюмы 4 и 5), звук будет двойной и очки удвоятся.
Рисунок 10 Скрипт для спрайта "Монеты" продолжение
Код для надписи «Победа!» означает следующее: прятаться до тех пор, пока игрок не наберет более 9 очков, и отразиться в центре экрана. Здесь используется бесконечный цикл (повторять всегда), который постоянно проверяет состояние переменной «Очки».
Рисунок Скрипт для надписи "Победа!"
Приложением к проекту является видеофайл Запись экрана Прохождение игры Flappy Dog.mov.
Протестировать компьютерную игру «Flappy Dog» было предложено разновозрастной группе ключевых пользователей из 10 человек.
По итогам тестирования все пользователи заполнили анкету (Приложение 1).
На основе анализа полученных данных были сделаны следующие выводы:
Оформление игры и персонаж понравились всем опрошенным пользователям независимо от возраста и пола.
Одному пользователю не удалось пройти игру до конца. Пользователям возрастной категории от 9 до 40 лет игра показалась простой, пользователям старше 70 - сложной.
Игра заинтересовала пользователей. Иметь ее на своем персональном компьютере пожелали 8 пользователей из 10.
Также 7 пользователей из 10 ничего в игре не хотели бы изменить. От 3 пользователей поступили следующие предложения: усложнить игру, добавив препятствия в виде движущихся летучих мышей; увеличить условие для победы до 100 очков; убрать лай собаки.
В среднем, чтобы пройти игру до конца пользователю потребовалось 6 попыток.
Заключение
Программирование — один из самых важных навыков будущего. Из-за своей сложности программирование требует много времени и усилий. Scratch был разработан для того, чтобы дети могли освоить этот важный для будущего навык как можно легче и веселее.
Создание программ и игр с помощью Scratch может помочь детям и в других аспектах их жизни. Способность рационально мыслить, находить оптимальные решения и сотрудничать с другими — все это навыки, которые, как известно, хорошо развивает программирование. Это очень практичные навыки, которые дети могут использовать для выполнения домашнего задания и школьной работы.
Основы программирования, несомненно, пригодятся в будущем и будут востребованы, независимо от того, в какой области будет работать будущий специалист.
СПИСОК ЛИТЕРАТУРЫ
Голиков Д.В. Scratch для юных программистов / Д.В. Голиков. – СПб.: БВХ-Петербург, 2020. – 168 с.
Голиков Д.В. 40 проектов на Scratch для юных программистов / Д.В. Голиков. – СПб.: БВХ-Петербург, 2018. – 192 с.
Голиков Д.В. 42 проекта на Scratch 3 для юных программистов / Д.В. Голиков. – СПб.: БВХ-Петербург, 2022. – 184 с.
Википедия: Скретч (язык программирования) - https://ru.wikipedia.org/wiki/Скретч_(язык_программирования)
Образовательный проект Парка высоких технологий и Министерства образования Республики Беларусь - https://scratch.by/about/
Приложение 1
Анкета пользователя:
Возраст ____
Пол М/Ж
Понравилась игра? да/нет
Понравилось оформление игры? да/нет
Понравился персонаж? да/нет
Удалось ли пройти игру до конца? да/нет
Если удалось, то с какой попытки? _____
Оцените сложность прохождения игры по шкале от 1 до 5 (где 1 - элементарно, 2 - просто, 3 - нормально, 4 - сложно, 5 - невозможно) ___
Хочется ли что-то в игре изменить? да/нет
Что именно? _________________________
Тебе хочется сыграть снова? да/нет
Ты бы хотел иметь такую игру у себя на компьютере? да/нет