Блог онлайн школы Пиксель

Как создать игру в снежки на платформе Скретч

Новый год уже наступил, подарки вручены, а праздничный стол немного опустел. Самое время выйти на улицу и насладиться зимним воздухом, покататься с горки или на лыжах. Но что делать, если на улице слишком холодно, а играть все равно хочется? Попробуйте сделать и сыграть в игру в снежки, созданную на языке программирования Scratch. Конечно, это не заменит вам полноценной зимней атмосферы, но вы точно интересно и с пользой проведете время с друзьями или родителями.
Вооружайтесь компьютерной мышкой!



Создаем спрайт и место для игры Scratch для детей


Прежде чем приступить к написанию кода, давайте выберем, где будут происходить наши зимние баталии. Конечно, логичнее выбрать что-то заснеженное и холодное. Но тут ваша фантазия не имеет границ: можете выбрать, например, тропики и пустынную Африку.

Это же касается и героев игры. В нашем случае мы остановились на динозавре. Но вы можете взять любого персонажа: от дракона до белой чайки. 


Вот теперь, когда у нас готов первый игрок и выбран игровой фон, можем приступать непосредственно к коду.  

Пишем скрипт для движения в Scratch-программировании для детей


В настоящей игре в снежки мы передвигаемся и бегаем. Чтобы наш динозавр делал то же самое, нужна последовательность действий. В среде Скретч в этом нам помогут соответствующие блоки. Для первого спрайта воспользуемся блоком «Когда флажок нажат», который находится во вкладке «Событие». 

Обратите внимание, что каждая вкладка определяет свой код и окрашена в определенный цвет, будь то движение, сенсор или событие. Это же касается команд и операторов, которые нужны нам для того, чтобы написать определенный скрипт. Такое визуальное восприятие и делает Scratch идеальной средой для изучения азов программирования. Это была минутка теории, теперь вернемся к нашей игре.


Наш спрайт будет перемещаться по полю, значит, нужно задать ему начальные координаты и размер, используя команды в блоках «Внешний вид» и «Движение». Координаты можно посмотреть в интерфейсе справа. Размер поставьте командой «Установить размер 70%». В конце всех действий ставим блок «Повторять всегда».  При помощи условия «Если, то» задается цикл движения первого игрока. Команду нужно добавить четыре раза.

Динозавр двигается  в горизонтальной и вертикальной плоскости.  Делать он это будет при помощи стрелок. В каждой команде «Клавиша пробел» нужно заменить на стрелку и поставить соответствующую координату. В нашем случае при движении вправо и влево координате «x» присваивается значение 4 и минус 4 соответственно. Аналогично ставим координаты для оси «y».

Проверяем себя:  динозавр двигается в системе координат «x» и «y». 

Механика игры в снежки в Scratch-программировании для детей


В игре нужно придумать игровое условие, при котором один проигрывает, а другой побеждает. Чтобы сделать это, в переменной «Очки игрок 1»  установим значение 10 в блоке «Когда флажок нажат». Это означает, что на начало игры у каждого есть 10 жизней и каждое попадание снежком уменьшает их количество. 

После этого поставим цикл «Повторять всегда» с блоком ожидания до «Клавиша пробел нажата». 


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

«Когда флажок нажат» — это первая команда, с которой мы начинаем любой скрипт. Она собирает в себе все действия, которые должны происходить на поле. В нашем случае по команде начинается игра.

Делаем снежок в среде Scratch-программирования


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


Можете нарисовать снежок своих форм и цветов. В данном примере выбран белый цвет и черная обводка. Если нужно увеличить или уменьшить размер, зажмите клавишу «Shift», а затем масштабируйте объект. 


Так как это игра, у нее должны быть правила. Давайте напишем скрипт для снежков, чтобы ими можно было стрелять только с определенным интервалом. Для этого нужно создать клон снежка и поставить задержку 0,1 секунды и 0,5 секунд соответственно. Также нам нужно уменьшить его на 30% и спрятать. Команды ставятся в блоке флажка.

Наш динозавр бросает снежок, значит, их действия взаимосвязаны. Чтобы это отразить в игре, воспользуемся блоком «Сенсор», оператором «Что-то плюс что-то» и командой «Показаться».


Возвращаемся к нашему главному условию и десяти жизням игрока. Игра заканчивается, когда снежок попадает в цель 10 раз. Чтобы так получилось, нам понадобится цикл, в который мы поставим ограничение и условие для повтора. То есть игра не закончится, пока снежок не попадет в игрока максимально возможное количество раз. 

Также давайте поменяем направление снежка в блоке «Движение» с условием «Если, то» и изменением значения «х» на 10.

Создаем второго игрока в среде программирования Скретч


В качестве соперника для первого игрока может быть любой понравившийся вам спрайт. В этом примере играть в снежки с динозавром будет забавный персонаж Кейси. Если герою, как в этом случае, нужно поменять положение, воспользуйтесь инструментом «Выделение» и отразите его по горизонтали.


Условием игры для этого персонажа будет команда «Изменить очки игрока 2 на минус 1». 
Теперь клон снежка, который мы ставили с командой ожидания, можно удалить. Новым условием напишем команду для попадания снежка в край экрана. Если такое случится, он должен исчезнуть, т.е. как бы вылететь за пределы экрана.


Второй игрок двигается так же, как и наш динозавр, только в противоположном направлении. Поэтому для облегчения задачи просто копируем скрипты первого игрока и меняем переменную первого игрока соответствующую команду.
Чтобы наш Кейси тоже бросал снежки, отражаем действия первого игрока: поворачиваем его на 15 градусов, затем копируем клон второго снежка и выставляем условия ожидания.

Как управлять персонажами в игре? Разбираемся на уроке Скретч для детей 


В наши цифровые снежки будут играть два игрока. Чтобы делать это одновременно, необходимо настроить две панели управления. Наш динозавр управляется стрелками на клавиатуре. Кейси будет двигаться при помощи так называемых игровых клавиш «W», «A», «S» и «D». Настроить их можно во вкладке персонажа. По нажатию на клавишу «z» будет совершаться бросок.

Снежок, которым будет бросаться Кейси, должен появляться рядом с ним. Чтобы это сделать, поставьте координаты на +30.

Повторяем условие игры для Кейси, при котором игра продолжается до 0 очков у противника. Для этого меняем игрока в команде «Повторять, пока очки игрока 1 не станут равными нулю» и координаты, чтобы снежок летел справа налево.

Аналогичным образом при помощи блока «Сенсор» меняем сумму очков первого игрока: у нас будет минус 1 при каждом удачном броске.


Программирование в среде Scratch: подведение итогов игры в таблице


В любой игре есть уведомление, виджет или всплывающее сообщение о победе или проигрыше игрока. Нам тоже нужна такая, чтобы понимать, кто бросил больше победных снежков и лишил противника всех десяти очков.

Таблицы в данном случае условны: в итоге мы будем видеть на экране надпись с определенным текстом.



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

В панели первого снежка ставим  «Передать сообщение победа игрок 1».


Для первого игрока пишем в спрайте его таблицы код по перемещению. Если мы изменим координаты «х» и «у» на 8 и минус 97, то табличка будет выводиться в центре экрана. Чтобы она не мешала во время игры, прячем ее командой «Спрятаться» при условии нажатого флажка.


Повторяем действия для второго снежка. По аналогии ставим блок «Передать сообщение победа игрок 2». Координаты для таблицы второго игрока будут также 8 и минус 97. 

Это было последнее действие: скрипт игры готов. Проверьте, что у вас все работает правильно: снежки не стреляют без остановки, персонажи повернуты друг к другу, а при снижении очков до нуля у одного из персонажей, появляется таблица с именем победителя. Но если вдруг что-то не получилось с первого раза, не расстраивайтесь: проверьте себя с помощью бесплатного видеоурока по созданию этой игры.

Вы можете сделать игру интереснее и красочнее: например, добавьте чат-бота, чтобы действия второго игрока были автоматическими. А еще можно создать в вашем игровом поле красивые зимние снежинки. Для вдохновения посмотрите готовые проекты, созданные  с помощью языка программирования Scratch.

Интересные видеоуроки по Scratch можно найти на канале школы программирования Pixel.  Не обладая глубокими познаниями в программировании, вы можете создать игру с привидениями, армию зомби, дополненную реальность, анимированный фон для мультфильма и платформеры. 

Хороший вариант — использовать уроки Scratch для детей в качестве самоучителя по программированию. И если ребенка заинтересовал мир нулей и единиц, ему захотелось создавать более сложные программы и игры, ждем вас на уроках Скретч для детей. Они доступны ребятам, начиная с 8 лет. Курсы проводятся как очно, так и онлайн. 

Scratch для детей Бесплатные видеоуроки