Как сделать игру в скретче игру
Программирование мини-игры в программе Скретч
На свете существуют множество языков программирования, но программирование для детей проще начинать с программ, которые предполагают создание игровой ситуации с героями или объектами, которые двигаются, меняются или взаимодействуют. К таким программам относятся ПервоЛого и ЛогоМиры, а также программа Скретч (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 действительно относится к группе мультимедийных развивающих сред программирования.
Как создать непрерывные уровни для игры Scratch
Учитель информатики из г.Борисова Вадим Александрович Фурс и Наталья Григорьевна Снытко, учитель информатики из г.Орша показывают и рассказывают, как создавать длинные и как будто непрерывные уровни для игр.
Уроки созданы в рамках конкурса для учителей «Моя Scratch-история-2020» в номинации «Опыт мастера». Вадим Александрович Фурс и Наталья Григорьевна Снытко — финалисты конкурса и докладчики конференции «Scratch conference Belarus 2020».
Первый способ — смена фонов
Начинающим программистам для понимания этих уроков рекомендуем сначала изучить 2-ю часть урока 5 «Создание и редактирование спрайтов», в которой мы попутно делаем анимацию «Кот гуляет с мячом» и впервые знакомимся с тем, как можно менять фоны и программировать почти бесконечное движение персонажа по разным фонам (локациям).
Здесь важно правильно нарисовать каждый фон так, чтобы он был продолжением предыдущего фона, а их совокупность представляла собой большую локацию (о том, что такое локация, см. во 2-ой части урока 8 для начинающих «Сцена и локации»).
Урок Вадима Александровича поможет сделать игру «Гонки», в которой каждый новый «сегмент» длинной и разнообразной трассы (дороги) представлен в виде отдельного фона сцены. Движение машины реализовано снизу вверх.
Урок Натальи Григорьевны поможет увидеть большую карту, а затем грамотно разбить её на части-прямоугольники, из которых получаются отдельные фоны. Затем рассчитать правильное движение дрона в любом направлении: вверх, вниз, влево, вправо.
Второй способ — передвижение спрайтов, относящихся к фону
На основе этого способа можно создать игру, в которой перемещение персонажа по сцене реализуется не напрямую, а путём передвижения объектов самой сцены. При этом фактически можно говорить о динамической генерации разных уровней игры, создавай и перемещая по сцене самые разные объекты: траву, деревья, горы, облака и др.
Оба предложенных способа можно комбинировать. Например, для игры «Гонки» дорогу делаем с использованием смены фонов, а деревья и прочие объекты на обочине, а также всевозможные препятствия генерируем вторым способом.
Имитация скроллинга фона с использованием клонов
Скроллинг — значит «пролистывание» или в данном случае «движение», «перемещение».
Наталья Григорьевна Снытко очень структурированно и систематизированно объясняет, как сделать красивый бесконечный уровень с использованием всего одного спрайта и его клонов.
Этот же подход использован в реализации последнего уровня игры «Собери снеговика«, а также во многих других играх. Пишите в комментариях о примерах таких игр, делитесь ссылками!
Сохранение очков и рекордов. Облачные Данные Scratch
Нас спрашивают, можно ли сохранять очки на сайте Scratch. Отвечаем: да, это возможно с использование облачных переменных.
Рассмотрим ниже небольшую заготовку игры, в которой с помощью облачной переменной сохраняется достигнутый лучшим игроком рекорд. Управление: двигай мышку влево-вправо и лови падающие яблоки.
Изучаем документацию
Чтобы помочь ещё лучше разобраться в данной теме, мы перевели на русский язык часть документации Scratch, где даны ответы на вопросы о том, что такое облачные переменные, как их создавать и пр. Сделали также несколько иллюстраций и дополнительных уточнений для лучшего понимания.
Что такое облачные переменные?
Облачные переменные позволяют сохранять данные из проекта и предоставлять к ним доступ другим пользователям сообщества Scratch. Вы можете использовать облачные переменные для проведения исследований (опросов) и других проектов, где другие члены сообщества могут со временем получать доступ к данным и изменять их.
Примечание: «облачные» — значит те, которые хранятся на сервере Scratch, в глобальной сети Интернет. Именно поэтому все могут иметь доступ к этим данным.
Кто может видеть данные, сохранённые в облачных переменных?
Когда вы взаимодействуете с проектом с использованием облачных переменных, данные, связанные с вашими взаимодействиями, могут быть сохранены вместе с вашим именем пользователя, и другие пользователи смогут их просматривать.
Какого типа данные могут храниться в облачных переменных?
В облачных переменных могут храниться только числа.
Если я вижу, что кто-то публикует нежелательный контент с использованием облачных переменных, как мне сообщить об этом?
Нажмите кнопку «Report (Пожаловаться)» красного цвета (на странице проекта под его описанием это третья по счёту кнопка после «Добавить в студию» и “Copy link”, см. картинку ниже), чтобы сообщить о неприемлемом контенте в облачных переменных. Не забудьте указать «облачные переменные» при вводе причины в отчете.
Кнопка «Пожаловаться»
Можно ли создавать чаты с облачными переменными?
На сайте Scratch чаты с облачными переменными не разрешены, хотя технически это возможно.
Как создать облачную переменную?
Перейдите в раздел «Переменные» палитры блоков (группу команд «Переменные»), выберите «Создать переменную» и установите флажок слева от надписи «Облачная переменная (хранится на сервере)» (см. картинку ниже). Данные, связанные с вашей облачной переменной, будут храниться на сервере, сохраняться с течением времени и доступны для всех, кто открывает проект.
Как создать облачную переменную?
Примечание: замечено, что иногда чтобы значение облачной переменной сохранилось и по завершении сеанса игры, при создании переменной необходимо выбрать тип «Только для этого спрайта». Но должно работать и без этого (возможно, в процессе подготовки материала на сайте Scratch был какой-то сбой).
Кто может изменить информацию в облачной переменной?
Только вы и пользователи вашего проекта можете хранить данные в облачных переменных этого проекта. Если кто-либо входит внутрь проекта или делает ремикс вашего кода, создаётся копия переменной, и она не влияет на исходную переменную и не изменяет ее.
Я вошел в систему, но не могу использовать проекты с облачными переменными. Что происходит?
Если вы являетесь «Новым скретчером» (новичком) на сайте, вы не сможете использовать проекты с облачными переменными. Чтобы получить доступ к облачным переменным, вам нужно стать Скретчером (получить статус Scratcher).
Сразу после создания аккаунта каждый пользователь помечается как «Новый Скретчер». Чтобы получить статус «Скретчер», нужно делиться своими проектами, комментировать проекты других Скретчеров и терпеливо подождать! После того как вы будете соответствовать требованиям, в профиле появится ссылка, приглашающая стать Скретчером, и вы получите некоторые дополнительные возможности на сайте Scratch. (Примечание: по запросу получить статус «Скретчер» новичкам невозможно).
Возможно ли создавать многопользовательские игры с помощью облачных переменных?
Создать многопользовательскую игру может оказаться сложно из-за проблем со скоростью сети и синхронизацией. Тем не менее, некоторые Скретчеры придумывают креативные способы использования облачных переменных для пошаговых стратегий и других типов игр.
Как узнать, используются ли облачные переменные в проекте?
В новой версии Scratch 3.0 можно быстро узнать, используются ли в проекте облачные переменные, на странице с описанием проекта. Под окном проигрывателя проекта, сразу под значками «лайк» (иконка сердечка) и «избранное» (звёздочка) отображается поле на светло-синем фоне с надписью Облачные Данные и иконкой облака (см. картинку).
Облачные Данные
История облачных данных
Примечание: замечено, что если проект был создан в Scratch 2.0 и после обновления Scratch до версии 3.0 его никто не запускал и не сохранял данные, на странице «История облачных данных» будет сообщение о том, что сохранённых данных нет:
There seems to be no Cloud Data activity on this project…
Аналогично, если новый проект не запустить и не использовать облачные переменные, получим такое же сообщение.
Примеры проектов с использованием облачных переменных
Как это сделать, частично можно узнать из Скретч ВИКИ в разделе «Облачный список» (см. по ссылке ниже).
Дополнительные источники
Ещё об использовании облачных переменных в Scratch можно почитать на страницах русскоязычной Скретч ВИКИ: