Компьютерная игра в мяч с джойстиком из Lego WeDo 1.0

Страничка проекта для участия в конкурсе Rukami 2020

Мы с ребятами решили попробовать… Собрались, пересмотрели наши проекты и выбрали тот, который оказался на данный момент наиболее законченным. В этом проекте мы соединим робота из Lego WeDo 1.0 с виртуальной средой компьютерной игры написанной на Scratch. Нужно сказать, что на занятиях кружка мы изучали различные алгоритмы для создания наших игр в Scratch, в том числе и алгоритм бильярдного шара. Его-то мы и будем использовать и даже поясним, почему именно его…

Компьютерная игра в мяч с джойстиком из Lego WeDo 1.0

Проект мы разрабатывали в рамках одной из приоритетных групп сквозных технологий НТИ “Сенсорика и компоненты робототехники”. Мы только еще начинаем, но все это жутко интересно 🙂

Дизайн джойстика

Поработали над внешним видом: чтобы было красиво и практично. Джойстик работает на базе микроконтроллера и датчика наклона из WeDo 1.0., но деталей для нашей задумки дизайна не хватило. Пришлось использовать детали из набора WeDo2.0. Сразу оговорюсь: работать с микроконтроллером WeDo2.0 очень неудобно: к Scratch 2.0 мы его подключить так и не смогли, а Scratch Link, который требуется использовать для создания беспроводного подключения к этому микроконтроллеру из Scratch 3.6, срабатывает через раз. Мы так уже прогорели однажды: не смогли подключить робота в самый ответственный момент на конкурсной демонстрации 🙁 Так что теперь программируем его исключительно через “родную” среду от компании Lego.

Самое главное правило при конструировании джойстика: сенсор – датчик наклона – надо расположить так, чтобы его хвостик был направлен к игроку. Все остальное на усмотрение создателя. Вот что получилось у нас.

Начинаем творить...
Вроде, получилось :)
Сделали уровни, чтобы наклон отслеживать ;)
А здесь в перевернутом виде

Работа над кодом игры в Scratch

Ну вот, можно начать программировать. По сути мы сейчас займемся тем, что создадим компьютерную игру в Scratch. Мы сразу решили сделать игру универсальной: можно играть джойстиком, кнопками клавиатуры и кнопками на экране. Запуск и останов игры тоже оформили через кнопки экрана. А вдруг мы потом захотим портировать нашу игру на Android-планшет?..

Для интересующихся предлагаю посмотреть сервис написания готовых курсовых и других учебных и исследовательских работ: курсові без плагіату. Сервис работает с заказчиками на русском и украинском языках.

Движение мяча программируем на основе классического алгоритма бильярдного шара – так надежнее. Проще обработать различные события: не только отражения от стен, которые легко программируются с помощью блока “если край, оттолкнуться”, но и отскок от вратаря, а это уже совсем не край. Для этого требуются две переменные: dx и dy, которые хранят в себе величину, на которую в каждом следующем шаге увеличивается соответствующая координата.

Начальные значения задаются случайным образом, поэтому при каждом новом запуске мяч будет лететь в случайном направлении со случайной по величине скоростью. При столкновении с горизонтальной стеной dy меняется на –dy, а при столкновении с вертикальной стеной dx меняется на –dx. Для простоты программирования и качества дизайна делаем вертикальные стены одним цветом, например, зеленым, а горизонтальную стену другим – синим. Вратаря тоже можно сделать синим, тогда не нужно будет отдельно прописывать отскок мяча от него.

Красным у нас нарисовано запрещенное для удара поле – если в него попадаешь, сгорает одна жизнь. В начале игры дается 3 жизни. Они записываются в переменную “XP”. В переменной “очки” будем хранить количество успешно отбитых вратарем мячей. В начале игры ее значение обнуляется.

Скрипт мяча

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

Для оптимизации скрипта мы использовали метод передачи сообщений. Различные события: нажатие на кнопку экрана, нажатие на клавишу клавиатуры, наклон джойстика, должны вызвать один и тот же код. Все эти события передают одно и то же сообщение, получив которое, вратарь выполняет определенный скрипт.

Весь проект на языке Scratch 1.4 можно скачать здесь. Хотелось бы еще пояснить, почему старая версия Scratch. Дело в том, что Scratch 2 заточен несколько под другие цели: можно писать крутые программы, но обработка сигнала от нашего джойстика происходит с незначительной задержкой, которая, однако, мешает нормально играть. Scratch 3.6 (последняя на сегодняшний день версия) вообще уже не поддерживает WeDo 1.0. Другие варианты с дополнительными надстройками мы даже и не рассматривали: зачем, если можно просто?

Ура! Заработало!!!

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

Posted in Разное.

Добавить комментарий

Ваш адрес email не будет опубликован.