Оглавление:

Игра «Доллар ниндзя» для Arduino: 3 шага
Игра «Доллар ниндзя» для Arduino: 3 шага

Видео: Игра «Доллар ниндзя» для Arduino: 3 шага

Видео: Игра «Доллар ниндзя» для Arduino: 3 шага
Видео: три кошака и жара 2024, Ноябрь
Anonim
Изображение
Изображение

Еще одна видеоигра для arduino. Это отличная игра, более продвинутая, чем та, что я опубликовал. Почему она сложнее других? Она сложнее, потому что она может прыгать и стрелять, имеет звуковой свет и новый метод контроля очков.

Запасы

  1. Ардуино.
  2. Макетная плата
  3. перемычки
  4. Красный светодиод
  5. 2 кнопки
  6. 2 резистора по 10 кОм
  7. 2 резистора 220R.
  8. Супер яркий синий светодиод.
  9. пьезо-зуммер
  10. ЖК-дисплей 16 * 2

Шаг 1. Соединяем все вместе

Соединяем все вместе
Соединяем все вместе

Теперь нужно все подключить

Шаг 2: Как играть:

  1. Включите ардуино.
  2. На ЖК-дисплее должно появиться сообщение «игра начинается» и обратный отсчет.
  3. Нажмите одну из кнопок, чтобы прыгать, а другую - стрелять.
  4. каждый блок, который вы прыгаете, вы выигрываете одно очко, а каждый * пойманный вами блок дает вам 5 очков.
  5. Когда у вас 50 очков или больше, вы выигрываете

Шаг 3: Код

// este jogo e muito interessante e ao mesmo templication e frustante mas muito divertido.

#включают

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int buttonPin1 = 1; const int buttonPin2 = 6; const int buzzer = 7; беззнаковые длинные точки = 0; // установить состояние кнопок bool buttonState1 = 0; bool buttonState2 = 0; // случайное число для положения препятствий int randomNums [6]; // случайное число для количества препятствий int randomNum = 0; // случайное число для позиции точек int randomNums1 [3]; // случайное число для количества очков int randomNum1 = 0; // время задержки запуска, которое постепенно уменьшается unsigned int myDelay = 500; // сделал это логическим значением, чтобы проверить, нажата ли кнопка2, потому что если она нажата один раз в первом цикле for, я хочу, чтобы препятствия не записывались до его конца bool temp = 0; // эта переменная хранит позиции воина во время стрельбы. может быть 16 позиций, потому что у воина 16 позиций. int tempI [16]; // я использую это логическое значение, чтобы проверить, захвачена ли точка bool temp1 = 0;

// используйте эту переменную для сохранения положения точки захвата. это должен быть массив и для хранения положения всех точек в одной итерации первого цикла for. если он сохранил только одну позицию, то "старая" точка вернется в новой итерации.

int tempI1 [3]; // используйте эту переменную, чтобы получить количество выстрелов воина, которое также является длиной массива tempI int button2IsPressed = 0; ЖК-дисплей LiquidCrystal (rs, en, d4, d5, d6, d7);

void setup () {

// устанавливаем количество столбцов и строк ЖК-дисплея: lcd.begin (16, 2); // установка режима закрепления кнопки pinMode (buttonPin1, INPUT); pinMode (buttonPin2, ВХОД); pinMode (зуммер, ВЫХОД); lcd.setCursor (4, 0); lcd.print («ИГРА»); lcd.setCursor (2, 1); lcd.print («НАЧИНАЕТСЯ»); lcd.print («5»); задержка (1000); lcd.setCursor (12, 1); lcd.print («4»); задержка (1000); lcd.setCursor (12, 1); lcd.print ("3"); задержка (1000); lcd.setCursor (12, 1); lcd.print ("2"); задержка (1000); lcd.setCursor (12, 1); lcd.print («1»); задержка (1000); lcd.clear ();

}

void loop () {

здесь:

randomNum = случайный (5);

для (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print («ПОБЕДА»); тон (зуммер, 262); задержка (200); тон (зуммер, 330); задержка (200); тон (зуммер, 392); задержка (100); тон (зуммер, 330); задержка (100); тон (зуммер, 392); задержка (100); тон (зуммер, 523); задержка (200); noTone (зуммер); задержка (3000); lcd.clear (); перейти сюда; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // установка препятствий, если воин не стрелял или стрелял, но тоже прыгнул if (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// установка очков

if (! temp1) {for (int j = 0; j

}

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