Игра Pixel Chaser
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Раньше я был разработчиком игр, и один из святых Граалей в разработке мобильных игр - сделать лучшую игру «в одно касание».
Я хотел посмотреть, смогу ли я сделать отличную "физическую" игру одним щелчком мыши, используя микроконтроллер, кнопку и какую-либо форму визуальной обратной связи.
Представляем PIXEL CHASER!
Это довольно простая сборка, так что давайте перейдем к ней!
Какие детали нам нужны?

Нам понадобится следующее:
- Arduino Nano (или любой микроконтроллер с 2 доступными выводами ввода-вывода)
- Кольцо или полоска RGB "NeoPixel"
- Мгновенная кнопка
- резистор 10 кОм
- Макеты
- Провода
Шаг 1
Поместите Nano на один конец макета так, чтобы разъем USB находился на краю.

Шаг 2
Поместите кнопку на другом конце макета как можно ближе к краю, чтобы до нее было легко добраться.

Шаг 3
Добавьте резистор 10 кОм между одной из сторон кнопки и шиной GND макета. Это будет НИЗКОЕ состояние кнопки по умолчанию. Мы используем резистор, чтобы гарантировать отсутствие короткого замыкания между VCC и GND при нажатии кнопки, так как это может повредить микроконтроллер и другие компоненты.

Шаг 4
Подключите перемычку с противоположной стороны кнопки к рейке VCC. При нажатии кнопка поднимается вверх.

Шаг 5
Подключите перемычку со стороны GND кнопки к D3 на Nano. Мы будем читать D3, чтобы определить состояние кнопки.

Шаг 6
Подключите полоску / кольцо RGB к макетной плате. Подключите провод VCC к шине питания VCC, провод GND к шине питания GND и провод DI (Data In) к D4 на Nano. Мы будем контролировать пиксели с помощью D4.

Шаг 7
Подключите перемычку от контакта 5V на Nano к шине питания VCC, затем подключите перемычку от контакта GND на Nano к шине питания GND.

Шаг 8
Загрузите код и играйте!

Надеюсь, вам понравился этот проект!
Вы можете найти больше интересных проектов на моем канале YouTube.
Следуй за мной:
http://twitter.com/unexpectedmaker
https://www.facebook.com/unexpectedmaker/
https://www.instagram.com/unexpectedmaker/
https://www.patreon.com/unexpectedmaker
https://www.tindie.com/stores/seonr/
Код
- Игра Pixel Chaser - Код Arduino
Игра Pixel Chaser - Код Arduino Arduino
Добавьте этот код в Arduino и следуйте инструкциям по сборке!/ * ---------------------------------- ----------------------------------------- Игра Pixel Chaser - v1.0.0 - 24 /03/2019.AUTHOR/LICENSE:Создано Сеоном Розенблюмом - [email protected] Авторские права 2016 Лицензия:GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html ССЫЛКИ:Блог:unknownmaker.comYOUTUBE:youtube .com / c / unknownmaker ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:Это программное обеспечение предоставляется на условиях «как есть», без технической поддержки и без каких-либо гарантий, явных или подразумеваемых, в отношении его полезности для каких-либо целей. ЦЕЛЬ:Этот контроллер представляет собой программное обеспечение, работающее на Reflow Master. контроллер духовки тостера от Unexpected Maker ИСТОРИЯ:24/03/2019 v1.0.0 - Первоначальный выпуск.ПРИМЕЧАНИЕ:работа над ним продолжается ...------------------- -------------------------------------------------- ------ * /// Нам нужны эти библиотеки, установленные из диспетчера библиотек # include#include "OneButton.h" // К какому GPIO подключена полоса # define PIXELPIN 4 // Сколько Ne oПиксели в полосе #define NUMPIXELS 24 // К какому GPIO подключена кнопка? #define BUTTON_TAP 3 // Инициализируйте кнопку со значением по умолчанию lowOneButton buttonTAP (BUTTON_TAP, false); // Инициализируйте полосу пикселей , PIXELPIN, NEO_GRB + NEO_KHZ800); // Куча переменных int playerIndex =-1; int playerIndexTrail =-1; int playerDirection =1; float nextMove =0; float currentPlayerSpeed =150; unsigned long countdown =0; int вражескийIndex =- 1; int coinIndex =-1; int score =0; int bestScore =0; int lastScore =0; bool gameOver =false; void setup () {// сделать вывод кнопки входным pinMode (BUTTON_TAP, INPUT); // Прикрепляем функции щелчка к кнопке buttonTAP.attachClick (singleClick); buttonTAP.attachLongPressStart (longClick); // Инициализируем полосу и устанавливаем ее яркость на 20% пикселей .begin (); pixel.setBrightness (20); // устанавливаем 2-секундный обратный отсчет до того, как игрок появится и начнет движение countdown =millis () + 2000;} void loop () {// Каждый цикл нам нужно отмечать состояние кнопки buttonTAP.tick (); // Если игра находится в состоянии завершения игры, досрочно выходим из цикла if (gameOver) return; // Устанавливаем состояние отображения уровня пикселей // Устанавливаем позицию врага и позицию монеты SetLevel (); // ждем секунду, пока игрок подготовится if (countdown> millis ()) {pixels.show (); возвращение; } // Здесь все отображение, движения и игровая логика игрока DisplayPlayer (); // Это отправляет обновленный цвет пикселя на оборудование. pixel.show ();} // Очищаем уровень, устанавливая для всех пикселей значение blackvoid ClearLevel () {for (int i =0; i =0) pixels.setPixelColor (playerIndexTrail, pixels.Color (0, 0, 0)); если (playerIndex> =0) {пикселей.setPixelColor (playerIndex, pixels.Color (0, 100, 0)); playerIndexTrail =playerIndex; } // Перемещаем игрока в текущем направлении playerIndex + =playerDirection; // Оборачиваем игрока по краям полосы if (playerIndex <0) playerIndex =NUMPIXELS - 1; иначе, если (playerIndex ==ЧИСЛО) playerIndex =0; пикселей.setPixelColor (playerIndex, pixels.Color (0, 255, 0)); // Игрок ударил монету? // Если это так, увеличиваем счет, сбрасываем позиции монеты и врага и очищаем уровень // В следующем цикле SetLevel () сбрасывает врага и монету // Скорость игрока также увеличивается с каждым попаданием монеты if (playerIndex ==coinIndex) {ownIndex =-1; coinIndex =-1; оценка ++; currentPlayerSpeed =ограничение (currentPlayerSpeed - 10, 50, 150); ClearLevel (); пикселей.setPixelColor (playerIndex, pixels.Color (0, 255, 0)); } // Игрок ударил врага? // Устанавливаем последний / лучший результат и вызываем игру поверх else if (playerIndex ==enemyIndex) {lastScore =score; если (оценка> =bestScore) bestScore =оценка; Игра закончена(); gameOver =true; ownIndex =-1; coinIndex =-1; playerIndex =-1; }}} // Нажатие одной кнопкиvoid singleClick () {// Нет ввода, пока игрок не станет видимым if (countdown> millis ()) return; // переключаем направление игрока playerDirection =-playerDirection;} // Длительное нажатие кнопкиvoid longClick () {// Переключаем состояние игры // Если игра закончилась, запустить игру, в противном случае отменить игру в процессе gameOver =! gameOver; если (gameOver) {противникIndex =-1; coinIndex =-1; playerIndex =-1; currentPlayerSpeed =150; ClearLevel (); } еще {ClearLevel (); оценка =0; currentPlayerSpeed =150; обратный отсчет =миллис () + 2000; }}
Производственный процесс
- Игра с гироскопом Arduino с MPU-6050
- Цифровые игральные кости Arduino
- Игра Arduino Pong - OLED-дисплей
- Рулетка DIY 37 LED
- Игровой контроллер Arduino
- Игра Arduino Touch Breakout
- Игра Arduino Nano Tetris на самодельной матрице 16x8
- Отталкивающая электромагнитная левитация Arduino
- Автоматизированная игра Дино с использованием arduino
- Домашний контроллер Arduino, активированный Alexa