Игра "бомба" на ардуино
- Войдите на сайт для отправки комментариев
Игра заключается в следующем: игроки становятся в круг и передают бомбу по кругу, при передаче бомбы,игрок отвечает на вопрос ведущего, у кого бомба в руках взорвётся-выбывает.
Есть 4 кнопки ,первая запускает цикл заново(равносильно ресету), 2,3 и 4 кнопки устанавливают верхний порог времени взрыва,расчитывающееся рандомно 1, 1.5 , 3 минут соответственно.
всё время до взрыва работает таймер типа пип-пип-пип.
вот скетч,который есть на данный момент:
const int din = 8; // пин светодиода
int ledState = LOW; // текущее состояние светодиода
long previousMillis = 0; // переменная для хранения времени
long intPause = 500; // интервал между звуком
int intBeep=150; //время звучания
void setup()
{
pinMode(din, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > intPause) //проверяем не пора ли пиликнуть
{
previousMillis = currentMillis; //сохранили последнее время
if (ledState == LOW) ledState = HIGH; else ledState = LOW;// включаем или выключаем в зависимости от текущего состояния
if (ledState==HIGH)
{
tone(din,2000,intBeep);
}
}
}
Главная проблема на этот момент:звук взрыва,долго пытался его сделать похожим на "бууум"
,но мне кажется придётся сделать что-то другое (звук смерти в игре марио)
не проще рандомно отстреливать одного из играющих - оставшиеся в живых оплачивают пышные похороны и празднуют принятие в клуб нового члена?
чтото не смешно...,лучше помогите пожалуйста со звуком взрыва.
чтото не смешно...,лучше помогите пожалуйста со звуком взрыва.
БУМ!
а как это в скетч написать?
Есть библиотека, по проигрыванию wav файлов. Посмотрите, может быть это то что вам нужно: http://cyber-place.ru/showthread.php?t=274&page=1
const int din = 8; //динамик
const int go = 2; //кнопка начала игры
const int but1 = 3; // время игры до 1 минуты
const int but2 = 4; //время игры до 1.5 минуты
const int but3 = 5; //время игры до 3 минут
const int motor = 7; //моторчик
const int flash = 6; // светодиод
int ledState = LOW; // текущее состояние таймера
long previousMillis = 0; // переменная для хранения времени
long intPause = 500; // интервал между звуком
int intBeep=150; //время звучания
unsigned long currentMillis = millis();
void setup()
{
pinMode(din, OUTPUT);
pinMode(motor, OUTPUT);
pinMode(flash, OUTPUT);
}
void loop()
{
if ((but1 or but2 or but3)==LOW){
return;
}
else{
if(currentMillis - previousMillis > intPause) //проверяем не пора ли пиликнуть
{
previousMillis = currentMillis; //сохранили последнее время
if (ledState == LOW) ledState = HIGH;
else ledState = LOW;// включаем или выключаем в зависимости от текущего состояния
if (ledState==HIGH)
{
tone(din,2000,intBeep);
}
}
}
}
если кому интересно,новости по теме выкладываю вот сюда:
http://forum.amperka.ru/threads/%D0%98%D0%B3%D1%80%D0%B0-%D0%B1%D0%BE%D0...