Мы с ребятами решили попробовать… Собрались, пересмотрели наши проекты и выбрали тот, который оказался на данный момент наиболее законченным. В этом проекте мы соединим робота из 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 можно скачать
Ура! Заработало!!!
Ну вот, код написали, джойстик собрали, можно поиграть! На видео мы сняли процесс игры с использованием джойстика, продемонстрировали управление вратарем с помощью кнопок клавиатуры и с помощью кнопок на экране. Вот и получилась наша компьютерная игра в мяч с джойстиком из Lego WeDo 1.0.