
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04




Нет необходимости представлять легендарную игру «Космические захватчики». Самая интересная особенность этого проекта заключается в том, что он использует отображение текста для графического вывода. Это достигается за счет реализации 8 пользовательских символов.
Вы можете скачать полный скетч Arduino здесь:
github.com/arduinocelentano/LCD_invaders/
Запасы
Плата Arduino UNO
Экран ЖКИ-клавиатуры
USB-кабель для загрузки эскиза
Шаг 1. Дизайн игры

Экран не позволяет управлять отдельными пикселями и отображает всего две строки текста, чего недостаточно для игры. Но он позволяет реализовать до 8 пользовательских символов. Хитрость заключается в том, чтобы обработать каждый символ 5x8 пикселей как две игровые ячейки 5x4 пикселей. То есть у нас будет игровое поле 16х4, что имеет смысл. 8 персонажей достаточно для реализации спрайтов космического корабля игрока, пуль и анимированных пришельцев. Так как спрайты имеют размер 5x4, а символы - 5x8, нам понадобятся некоторые персонажи с двумя спрайтами, такие как спрайт «космический корабль и пуля», «инопланетянин и спрайт пули» и т. Д. Все пользовательские символы показаны на картинке.
Шаг 2: кнопки обработки

Обычно все кнопки на ЖК-экране подключаются к одному и тому же аналоговому выводу. Существуют разные версии экрана LCD, поэтому вам, вероятно, придется немного изменить целочисленные литералы в моем коде обработки кнопок.
Шаг 3: Иерархия классов

Я реализовал базовый класс GameObject, который имеет поля координат и скорости и обрабатывает столкновения. От него унаследованы классы Корабль, Чужой и Пуля.
Шаг 4: Обновление экрана

Логика рендеринга может показаться несколько сложной, потому что нам нужно преобразовать игровую логику 16x4 в отображение 16x2. Пожалуйста, прочтите комментарии в коде для получения дополнительной информации. Чтобы избежать мерцания, я использовал двумерный массив символов в качестве текстового буфера. Это позволяет использовать пару (по одной на каждую строку) операций печати для обновления экрана.
Шаг 5: логика игры

Вот суть игры. Основной цикл изменяет координаты всех объектов, проверяет всевозможные коллизии и события нажатия кнопок. Скорость пришельцев и вероятность их стрельбы возрастают от уровня к уровню. Но и количество очков увеличивается.
Шаг 6: пасхальное яйцо

После 42 уровня нет. Серьезно. Это высший уровень жизни, Вселенной и всего остального.:)
Рекомендуемые:
Портативная игровая консоль Lego с Space Invaders: 4 шага

Портативная игровая консоль Lego с Space Invaders: вы когда-нибудь думали о том, чтобы стать разработчиком игр и создать собственную игровую консоль, в которую можно играть на ходу? Все, что вам нужно, это немного времени, оборудование Lego bricksa Mini-Calliope (можно заказать на этом сайте https://calliope.cc/en) и некоторые навыки
Space Invaders в Micropython на Micro: bit: 5 шагов

Space Invaders в Micropython на Micro: bit: В наших предыдущих статьях мы исследовали создание игр на GameGo, портативной игровой консоли в стиле ретро, разработанной TinkerGen education. Созданные нами игры напоминали старые игры Nintendo. В сегодняшней статье мы сделаем шаг назад, чтобы
Учебное пособие по Arduino LCD 16x2 - Подключение ЖК-дисплея 1602 к Arduino Uno: 5 шагов

Учебное пособие по Arduino LCD 16x2 | Взаимодействие ЖК-дисплея 1602 с Arduino Uno: Привет, ребята, так как многим проектам нужен экран для отображения данных, будь то индикатор самодельного счетчика или счетчик подписок на YouTube, калькулятор или блокировка клавиатуры с дисплеем, и если все эти виды проектов выполняются с arduino они определенно будут
Часы Space Invaders (при ограниченном бюджете!): 6 шагов (с изображениями)

Часы Space Invaders (при ограниченном бюджете!): Недавно я увидел классную сборку от GeckoDiode и сразу захотел построить ее сам. Учебным пособием являются настольные часы Space Invaders, и я рекомендую вам взглянуть на них после прочтения этого. Проект был почти полностью построен из частей, полученных от поставщиков
Люстра Space Invaders со светящимся в темноте Экшен: 16 шагов (с изображениями)

Люстра Space Invaders со светящимся в темноте Экшен: используйте 3D-моделирование / печать, лазерную резку акрила, литье из смолы, УФ-реактивный пигмент, светодиоды и простую проводку, чтобы сделать люстру или лампу в стиле ретро и круто космических захватчиков. Я включил хороший трюк для создания изогнутых углов из лазерной