Ett spel av drakar - en Arduino ledde spelet (5 / 8 steg)
Steg 5: Spelsystem (hjärtat av vårt projekt)
////////////////////////////////P1 GAME SYSTEM/////////////////////////////////////
NORMALA SPELET STATEN
void GameSystemP1() {
cleanBoardP1();
om (CurrentLedP1 > ScoreP1) {
TimerActiveP1 = false;
CurrentLedP1 = 0;
om (ScoreP1 > = 3) {
SpeedP1 = SpeedP1 / SpeedPercentage;
ScoreP1-= 1;
}
hemkomst.
}
/////////////////////////////////
ANTECKNINGAR
Den nuvarande ledde kan aldrig vara högre än den nuvarande poängen. De spelade har därför inte driver knappen alls, som resulterar i en sänkning av poängen.
Det är viktigt att notera att när spelaren förlorar:
-den nuvarande ledde sätts tillbaka till 0
-den nuvarande timern återställs
Undantag endast när poängen är högre än dess minumin:
-poäng minskar
-hastigheten ökar (omvänd procent)
////////////////////////////////
SLUTLIGA LED
om (ScoreP1 == CurrentLedP1) {
Vänder på timern
om (TimerActiveP1 == false) {
TimerActiveP1 = sant;
IntervalP1 = SpeedP1;
TimeSaveP1 = tid;
}
Knappen trycktes på rätt ledd
IF(P1ButtonDelay() == true) {
TimerActiveP1 = false;
CurrentLedP1 = 0;
SpeedP1 = SpeedP1 * SpeedPercentage;
ScoreP1 + = 1;
}
slå på led
om ((time-TimeSaveP1) < (IntervalP1)) {
digitalWrite((CurrenLedP1+FledP1),HIGH);
}
Spelaren trycka inte på knappen och därför förlorar en runda
om ((time-TimeSaveP1) > (IntervalP1)) {
TimerActiveP1 = false;
CurrentLedP1 = FledP1;
om (ScoreP1 > = 3) {
SpeedP1 = SpeedP1 / SpeedPercentage;
ScoreP1-= 1;
}
hemkomst.
}
}
FORTSATT LYSDIODER
annat {
vänder på timern
om (TimerActiveP1 == false) {
TimerActiveP1 = sant;
IntervalP1 = SpeedP1;
TimeSaveP1 = tid;
}
spelaren tryckte på knappen vid fel tidpunkt
IF(P1ButtonDelay() == true) {
TimerActiveP1 = false;
CurrentLedP1 = 0;
om (ScoreP1 > = 3) {
SpeedP1 = SpeedP1 / SpeedPercentage;
ScoreP1-= 1;
}
hemkomst.
}
Normala Blink
annat {
om ((time-TimeSaveP1) < (0,25 * IntervalP1)) {
digitalWrite((CurrenLedP1+FledP1),HIGH);
}
om ((time-TimeSaveP1) > (0,5 * IntervalP1)) {
digitalWrite((CurrenLedP1+FledP1),LOW);
}
}
spelaren tryckte på knappen vid rätt tidpunkt!
om ((time-TimeSaveP1) > (IntervalP1)) {
TimerActiveP1 = false;
CurrentLedP1 + = 1;
}
}
hemkomst.
}