Оглавление:

LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2: 7 шагов
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2: 7 шагов

Видео: LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2: 7 шагов

Видео: LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2: 7 шагов
Видео: Игровой проект Arduino — Как сделать игру на ЖК-дисплее Arduino (Endless Runner!) 2024, Июль
Anonim
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2
LCD Invaders: Space Invaders Like Game на символьном ЖК-дисплее 16x2

Нет необходимости представлять легендарную игру «Космические захватчики». Самая интересная особенность этого проекта заключается в том, что он использует отображение текста для графического вывода. Это достигается за счет реализации 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 уровня нет. Серьезно. Это высший уровень жизни, Вселенной и всего остального.:)

Рекомендуемые: