Найти в Дзене

mBot2 #27. Игровой проект "Играем в мяч". Часть 3. Собираем игру.

Все, сегодня мы завершим создание игрового проекта. Нам осталось добавить двух игровых персонажей. Про вариант импортировать готовые спрайты мы уже говорили в предыдущей части. Теперь повторим этот процесс для закрепления. Нам нужен второй игрок и мяч для игры. В качестве игрока может подойти любой спрайт из коллекции, подходящий по позе и "настроению" игры. Мы выбрали "Girl20". Так же потребуется подходящий мяч. Мы воспользовались спрайтом "Ball". Оба спрайта с программами выложены в папку электронного архива проекта. Ниже мы рассмотрим их скрипты, но для ускорения можно просто импортировать нужные спрайты в проект. Как это сделать, уже обсуждалось в прошлой части, если надо, повторите. После импорта у вас в наличии оказывается набор из 7 спрайтов. Загляните в раздел Переменные и убедитесь, что вместе с импортированными спрайтами появился и нужный набор переменных. При необходимости настройте видимость 2 переменных (Panda и Girl), которые будут отвечать за отображение счета в игре.
Оглавление

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

Импортируем двух персонажей.

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

Так же потребуется подходящий мяч. Мы воспользовались спрайтом "Ball".

Оба спрайта с программами выложены в папку электронного архива проекта.

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

После импорта у вас в наличии оказывается набор из 7 спрайтов.

Загляните в раздел Переменные и убедитесь, что вместе с импортированными спрайтами появился и нужный набор переменных. При необходимости настройте видимость 2 переменных (Panda и Girl), которые будут отвечать за отображение счета в игре. Расположите их на поле удобно, чтобы не мешали.

-2

Проверяем скрипты персонажей

По сути, уже можно играть. Но на всякий случай посмотрим на скрипты персонажей. С одной стороны - проверим, все ли в порядке, с другой - немного покомментируем, кто и что делает.

Ball

Выделите спрайт Ball и посмотрите на его скрипты. Должно быть так:

-3

Видно, что для движения мяча задается случайное направление первоначального движения, реакция на соударения с верхней и нижней гранью (реализована в виде нового "своего" блока - подпрограммы rebound (отскок) с сообщением "удар"), а также реакция на удар об левую или правую грани с начислением очков персонажам.

Girl20

В данном случае реализован достаточно сложный алгоритм движения персонажа. При получении сообщения "удар" (т.е. мяч коснулся нижней или верхней грани) данный персонаж смещается по вертикали определенным алгоритмом образом. При этом достигается достаточная для интересной игры точность его реакций, но и забить гол ему получается! Т.е. игрок за панду впоkyt может выиграть, хоть это и сложно. Именно этого надо стремится достигать в играх - сложности достижения победы, но при этом возможность победить должна быть обязательно!

Так же сюда вынесены функции скрытия видимости части переменных.

-4

Дорабатываем скрипты персонажа Panda

Немного доработаем скрипты Panda. Пусть она меняет костюм при счете не в свою пользу.

Например так:

-5

Ну и, пожалуй все))))

Можно пробовать играть.

На всякий случай, готовый проект также выложен в папку электронного архива проекта. (PandaM_Ball5.mblock)

Можно посмотреть видео готового проекта.

Напомним, что игра проходит в режиме онлайн, т.е. управляется прямо из среды mBlock5.

Подключили робота, запустили игру. Ладонью над роботом меняем показания датчика освещенности и, следовательно, положение своего игрока Panda, отбиваем мячи и пытаемся поразить "ворота" второго игрока.

Дальнейшие доработки игры.

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

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

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

Таким образом - доработка игрового проекта содержит массу возможностей для дальнейшей интересной деятельности. Пробуйте!

Ранее в цикле: