Давно хотел сделать с сыном очень простой пример игры на micro:bit — стрелялку, которую я увидел в одной тематической книге. Всё как-то не доходили руки: где на всё найти время? Но вот добрались — вечером в выходные.

Кажется, ну что вообще можно сделать на экране 5 на 5 светодиодных лампочек? Но концепт очень простой. Рисуем противника в виде горящего светодиода — каждый раз абсолютно рандомно, просто точку на полную яркость.
Рисуем прицел строго по центру дисплея и немного приглушаем свечение, чтобы прицел был менее ярким, чем точка противника, — тогда их можно наложить друг на друга.
Двигаем прицел к противнику по показаниям датчика наклона — акселерометра. А выстрел делаем по одновременному нажатию кнопок A+B.

Микроконтроллер здесь выступает и джойстиком, и дисплеем игры. Проект готов.
Из MakeCode — в веб
Дальше мы скормили детский алгоритм ИИ-агенту и попросили выдать нам что-нибудь в духе игр Sega на 16 бит.
При этом попросили взять реализацию коннектора для micro:bit из решения, которое я делал для управления контроллером через Яндекс Станцию Алису.

Таким образом, в веб-версии лёгкий вариант — играть компьютерной клавиатурой: стрелки и стрельба по пробелу. Но гораздо интереснее и сложнее подключить к веб-игре микроконтроллер и управлять прицелом через акселерометр, как джойстиком, — по аналогии с той первой детской программой в MakeCode.

Для смартфона можно сделать похожим образом, если он поддерживает Web Accelerometer API, с фолбэком в виде D-Pad там, где API нет, — к примеру, на iOS.

От прототипа к приложению
Короче, как и в прошлый раз с дыханием, получился опять кейс приложения от 0 к 1: от прототипа-лабы на детском MakeCode с блоками до вполне себе нормального осязаемого веб-приложения.
Связанные заметки
- [Алиса командует micro:bit — пишу вместе с сыном кастомные голосовые навыки]
- [Как мы с сыном сделали датчик полива для кактуса, или Почему micro:bit — лучший первый компьютер]
- [Небольшое полноценное PWA приложение от 0 к 1, как пример для детей в рамках "do your :bit"]
- [Умная елочная игрушка на micro:bit]