You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Play/play5/birduino.ino

656 lines
20 KiB

/*****************************************************************************/
void birduino()
{
myGLCD.clrScr();
myGLCD.setColor(255, 255, 255);
// myGLCD.fillScr(210, 210, 210);
// myGLCD.fillScr(WHITE);
myGLCD.fillScr(BIRD_BG);
drawTitle();
if (exit_menu == 1)
{ exit_menu = 0;
loop();
}
initiateGame(); // Initiate the game
// myGLCD.drawBitmap (100,150, BORD_BMP_X, BORD_BMP_Y, udar);
//delay(100);
while (1)
{
play:
but();
if (valBtnL || valBtnR || valBtnT || valBtnD)
{ valBtnL = 0;
valBtnR = 0;
valBtnT = 0;
valBtnD = 0;
if (valBtnPause == 1)
{ valBtnPause = 0;
myGLCD.setBackColor(BIRD_BG);
myGLCD.print("PAUSE", 275, 200); //,255,5);
myGLCD.print("PAUSE", 100, 90); //,255,5);
// break;
while (1)
{ delay(1000);
but();
if (valBtnL || valBtnR || valBtnT || valBtnD)
{ myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(270, 180, 270 + 100, 250);
goto pause_end;
}
}
}
else
{ tick = 0;
fallRate = 0; // Setting the fallRate negative will make the bird jump
fallRateInt = -10; // Setting the fallRate negative will make the bird jump скороть взлета
screenPressed = true;
}
}
if (myTouch.dataAvailable())
{
myTouch.read();
xt = myTouch.getX();
yt = myTouch.getY();
if ((xt >= 600) && (xt <= 800)) // Upper row
{
if ((yt >= 130) && (yt <= 270)) // Button: 1
{ myGLCD.setColor(BIRD_BG);
myGLCD.drawCircle(670, 200, 10);
myGLCD.drawCircle(670, 200, 11);
tick = 0;
fallRate = 0; // Setting the fallRate negative will make the bird jump
fallRateInt = -10; // Setting the fallRate negative will make the bird jump скороть взлета
screenPressed = true;
}
if ((yt >= 400) && (yt <= 470)) // Button: ПАУЗА
{ myGLCD.setBackColor(BIRD_BG);
myGLCD.setColor(255, 0, 0);
myGLCD.print("PAUSE", 275, 200); //,255,5);
myGLCD.setColor(VGA_GRAY);
myGLCD.fillRect(620, 415, 720, 455);
myGLCD.setColor(VGA_WHITE);
myGLCD.drawRoundRect(620, 415, 720, 455);
myGLCD.setBackColor(VGA_GRAY);
myGLCD.setColor(255, 0, 0);
myGLCD.print("PAUSE", 630, 428); //,255,5);
delay(1000);
while (1)
{
but();
if (valBtnL || valBtnR || valBtnT || valBtnD)
{ myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(270, 180, 270 + 100, 220);
goto pause_end;
}
if (myTouch.dataAvailable())
{ myTouch.read();
xt = myTouch.getX();
yt = myTouch.getY();
if ((xt >= 600) && (xt <= 800)) // Upper row
{ if ((yt > 0) && (yt < 470))
{ myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(270, 180, 370, 220);
//*** КНОПКА ПАУЗА***********
myGLCD.setColor(VGA_WHITE);
myGLCD.fillRect(620, 415, 720, 455);
myGLCD.setColor(VGA_GRAY);
myGLCD.drawRoundRect(620, 415, 720, 455);
myGLCD.setBackColor(VGA_WHITE);
myGLCD.setColor(255, 0, 0);
myGLCD.print("PAUSE", 630, 428); //,255,5);
goto pause_end;
}
}
}
}
}
}
}
pause_end:
// only do the rest when the time has come...
crt_millis = millis();
#define TIME_UNIT 10 // game ticker, in millis скороть движения
if ( (crt_millis - prev_millis) < TIME_UNIT ) goto play;
prev_millis = crt_millis;
if ( (tick++) > 0 ) {
fallRate = tick * tick; // Setting the fallRate negative will make the bird jump
// fallRate = tick*10; // Setting the fallRate negative will make the bird jump скорость падения
//fallRateInt = int(fallRate/30);
fallRateInt = int(fallRate / 100);
}
drawPilars(xP, yP); // Draws the pillars
// delay(30);
// yB - y coordinate of the bird which depends on value of the fallingRate variable
yB += fallRateInt;
// clip bird coordinates
if ( yB > (BOTTOM_AREA_Y - BORD_BMP_Y) )
{ yB = (BOTTOM_AREA_Y - BORD_BMP_Y);
fallRateInt = 20;
}
if ( yB < 0 ) yB = 0;
// Draws the bird
drawBird(yB);
// Checks for collision
// top and bottom
//if ( yB>(BOTTOM_AREA_Y-BIRD_BMP_Y) || yB<0 ) gameOver();
// upper or lower pillar
if ( xP < (BIRD_X + BORD_BMP_X - 5) && xP > (BIRD_X - PILLAR_BMP_X + 5) && ( yB < (yP) || yB > (yP + PILLAR_GAP - BORD_BMP_Y) ) )
{ life = life - 1;
if ( life < 1) {
life = 3;
// myGLCD.setColor(BIRD_BG);
// myGLCD.fillRect(200, 0, 100+200, 20);
gameOver();
}
else {
hit();
}
}
// After the pillar has passed through the screen
if (xP <= -PILLAR_END_BMP_X) {
xP += TFTHEIGHT - 150 - PILLAR_END_BMP_X; // Restart xP
yP = map(rand() % 100, 0, 100, PILLAR_END_BMP_Y, (BOTTOM_AREA_Y - PILLAR_END_BMP_Y - PILLAR_GAP)); // Random number for the pillars height
score++; // Increase score by one
}
xP -= movingRate; // xP - x coordinate of the pillars; range: 319 - (-51)
// After each five points, increases the moving rate of the pillars
if ((score - lastSpeedUpScore) == 5) {
lastSpeedUpScore = score;
level ++;
if (level <= 30)
{ life ++;
}
else
{
if (level % 2 == 0)life ++;
}
movingRate = level + 2; //скорость дв пилонов
if (level % 10 == 0)movingRate = movingRate - life / 2;
if (movingRate > 16)movingRate = 16;
}
drawScore();
myGLCD.setColor(VGA_WHITE);
myGLCD.drawCircle(670, 200, 10);
myGLCD.drawCircle(670, 200, 11);
/* myGLCD.setColor(BIRD_BG);
myGLCD.setColor(VGA_RED);
myGLCD.setBackColor(BIRD_BG);
// myGLCD.setTextColor(BLACK, BIRD_BG);
//myGLCD.setCursor(285,5);
myGLCD.setColor(VGA_BLUE);
myGLCD.setBackColor(BIRD_BG);
// myGLCD.setTextColor(BLACK, BIRD_BG);
// myGLCD.setCursor(5,5);
// myGLCD.print("Highscore:");//,5,5);
myGLCD.print("Highscore:",5,5);
// myGLCD.setCursor(130,5);
// myGLCD.print(highscore);//, 120, 6);
myGLCD.printNumI(highscore,130,5);
myGLCD.setColor(VGA_RED);
myGLCD.setBackColor(BIRD_BG);
// myGLCD.setCursor(230,5);
// myGLCD.print("Life:");//,5,5);
myGLCD.print("Life:",230,5);
myGLCD.printNumI(life,300,5);
*/
}// while (1)
}
void drawTitle()
{
//myGLCD.drawBitmap((TFTHEIGHT-FLAPPY_TITLE_X)/2, (TFTWIDTH-FLAPPY_TITLE_Y)/3, FLAPPY_TITLE_X, FLAPPY_TITLE_Y, icon);
myFiles.load(0, 0, 800, 480, "play/15.raw" , 32, 0);
/*for (int i=0; i<640+55; i=i+10) {
movingRate=10;
xP=640-i;
drawPilars(xP, yP); // Draws the pillars
}*/
uint32_t tim = millis();
myGLCD.setFont(BigFont);
myGLCD.setColor (VGA_WHITE);
myGLCD.setBackColor(VGA_TRANSPARENT);
myGLCD.print("TAP TO CONTINUE", CENTER, 450);
int st = 0;
while (st < 100) {
delay(100);
but();
st++;
if (st > 98)exit_menu = 1;
if (valBtnL || valBtnR || valBtnT || valBtnD)
{ valBtnPause = 0;
exit_menu = 0;
break;
}
if (myTouch.dataAvailable())
{ exit_menu = 0;
break;
}
}
myGLCD.fillScr(BIRD_BG);
//delay(5000);
}
/*****************************************************************************/
/*****************************************************************************/
void initiateGame(void)
{
//// while ( ts.getPoint(&p) ); // wait to release touch
myGLCD.fillScr(BIRD_BG);
// Ground
drawGround();
// Text
myGLCD.setColor(VGA_BLUE);
myGLCD.setBackColor(VGA_YELLOW);
myGLCD.print("Score:", 5, 420);
myGLCD.setFont(BigFont);
// myGLCD.setTextSize(2);
// myGLCD.setCursor(5,220);
// myGLCD.print("Score:");
//myGLCD.setTextSize(1);//SmallFont);
// myGLCD.setCursor(170,220);
// myGLCD.print("Level:");//, 140, 220);
myGLCD.setColor(VGA_BLUE);
// myGLCD.setBackColor(VGA_YELLOW);
myGLCD.setBackColor(VGA_YELLOW);
myGLCD.print("Level:", 190, 420);
//myGLCD.setTextColor(RED, BIRD_BG);
// myGLCD.setCursor(230,5);
myGLCD.setColor(VGA_RED);
myGLCD.print("Life:", 350, 420); //,5,5);
myGLCD.printNumI(life, 440, 420); //,5,5);
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(200, 0, 100 + 200, 20);
myGLCD.setBackColor(VGA_YELLOW);
myGLCD.setColor(VGA_BLUE);
// myGLCD.setBackColor(BIRD_BG);
// myGLCD.setTextColor(BLACK, BIRD_BG);
// myGLCD.setCursor(5,5);
// myGLCD.print("Highscore:");//,5,5);
myGLCD.print("Highscore:", 5, 450);
// myGLCD.setCursor(130,5);
// myGLCD.print(highscore);//, 120, 6);
myGLCD.printNumI(highscore, 175, 450);
myGLCD.setColor(VGA_RED);
myGLCD.setBackColor(BIRD_BG);
//****Управление тач***********
//myGLCD.setColor(VGA_AQUA);
myGLCD.setColor(204, 244, 255);
myGLCD.fillRect(605, 5, 735, 475);
myGLCD.setColor(VGA_WHITE);
myGLCD.drawRoundRect(605, 5, 735, 475);
//***КРУГЛАЯ КНОПКА***********
myGLCD.setColor(GRAY);
myGLCD.fillCircle(670, 200, 50);
myGLCD.setColor(VGA_WHITE);
myGLCD.fillCircle(670, 200, 48);
//*** КНОПКА ПАУЗА***********
myGLCD.setColor(VGA_WHITE);
myGLCD.fillRect(620, 415, 720, 455);
myGLCD.setColor(VGA_GRAY);
myGLCD.drawRoundRect(620, 415, 720, 455);
myGLCD.setBackColor(VGA_WHITE);
myGLCD.setColor(255, 0, 0);
myGLCD.print("PAUSE", 630, 428); //,255,5);
// myGLCD.setCursor(230,5);
// myGLCD.print("Life:");//,5,5);
// myGLCD.print("Life:",230,5);
// myGLCD.printNumI(life,300,5);
// myGLCD.setCursor(285,5);
// myGLCD.print(life);//, 120, 6);
// myGLCD.setCursor(255,5);
// myGLCD.print("| RESET |");//,255,5);
// Resets the variables to start position values
xP = TFTWIDTH;//TFTHEIGHT;
yB = 100;
fallRate = 0;
fallRateInt = 0;
score = 0;
level = 0;
lastSpeedUpScore = 0;
movingRate = MOV_RATE_X0;
//screenPressed = -1;
screenPressed = false;
gameStarted = false;
paused = false;
steps = 0;
tick = 0;
drawBird(yB); // Draws the bird
drawScore();
// write tap to start
// myGLCD.drawFastHLine(0,23,TFTHEIGHT, BLACK);
myGLCD.setColor(VGA_BLACK);
myGLCD.drawLine(0, 23, TFTHEIGHT - 200, 23); //V
// myGLCD.setTextSize(1);
// myGLCD.setTextColor(BLACK, BIRD_BG);
while (!gameStarted) {
uint32_t tim = millis();
myGLCD.setColor(VGA_BLUE);
myGLCD.print("TAP TO START", 250, 200);
// myGLCD.setCursor(TEXT_POSITION_CENTER,100);
// myGLCD.print("TAP TO START");//,CENTER,100);
myGLCD.setBackColor(BIRD_BG);
// myGLCD.fillRect(TEXT_POSITION_CENTER, 100, 100+TEXT_POSITION_CENTER, 10+100); // clear text
tim = millis();
while ((millis() - tim) < 500)
{ but();
if (valBtnL || valBtnR || valBtnT || valBtnD)
{ valBtnPause = 0;
gameStarted = true;
break;
}
if (myTouch.dataAvailable())
{ gameStarted = true;
break;
}
}
}
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(250, 150, 400, 250); // clear text
// myGLCD.fillRect(TEXT_POSITION_CENTER, 100, 100, 10, BIRD_BG); // clear text
myGLCD.fillRect(0, 0, TFTHEIGHT - 200, BOTTOM_AREA_Y); // delete top status row, leave room for the game
delay(10); // wait touch end
}
/*****************************************************************************/
void drawGroundDeco(void)//земля узоры
{
//int offs = xP<0 ? (-xP)%12 : xP%12; // template repetition length = 12
int offs = (steps += movingRate) % 12; // template repetition length = 12
// draw 6 lines of deco
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 2, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 3, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 4, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 5, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 6, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
myGLCD.drawBitmap(0, BOTTOM_AREA_Y + 7, TFTHEIGHT - 200, 1, bottom_deco + ((offs++) % 12));
}
/*****************************************************************************/
// ===== drawPlillars - Custom Function
/*****************************************************************************/
void drawPilars(int x, int y)// препятствия
{
int c = 0;
//x = 250; // test
//sprintf(s, "drawPillars x: %3i, y: %3i\n", x, y); Serial.print(s);
// clip y coordinates:
if ( y < PILLAR_END_BMP_Y ) y = PILLAR_END_BMP_Y;
if ( y > (BOTTOM_AREA_Y - PILLAR_GAP - PILLAR_END_BMP_Y) ) y = (BOTTOM_AREA_Y - PILLAR_GAP - PILLAR_END_BMP_Y);
// draw pillar body till (y-PILLAR_END_BMP_Y)
for (int i = 0; i < PILLAR_BMP_X; i++) {
if (x + i < 0) {
myGLCD.setColor(BIRD_BG);
// myGLCD.setColor(VGA_AQUA);
}
else
{ myGLCD.setColor(pillar[i]);
}
myGLCD.drawLine(x + i, 0, x + i, (y - PILLAR_END_BMP_Y)); //V
// myGLCD.drawLine(x+c+1, 0,x+c+1, (y-PILLAR_END_BMP_Y));//V
c = c + 1;
}
// draw pillar end
if (x > 0) myGLCD.drawBitmap(x, y - PILLAR_END_BMP_Y, (int)PILLAR_END_BMP_X, (int)PILLAR_END_BMP_Y, pillar_end);
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(x + PILLAR_END_BMP_X, 0, x + PILLAR_END_BMP_X + movingRate, y);
// now draw lower pillar. First the pillar end
if (x > 0) myGLCD.drawBitmap(x, y + PILLAR_GAP, (int)PILLAR_END_BMP_X, (int)PILLAR_END_BMP_Y, pillar_end);
// then the body
c = 0;
for (int j = 0; j < PILLAR_BMP_X; j++) {
if (x + j < 0) {
myGLCD.setColor(BIRD_BG);
//myGLCD.setColor(VGA_AQUA);
}
else
{ myGLCD.setColor(pillar[j]);
}
myGLCD.drawLine(x + j, y + PILLAR_GAP + PILLAR_END_BMP_Y, x + j, y + PILLAR_GAP + PILLAR_END_BMP_Y + (BOTTOM_AREA_Y - y - PILLAR_GAP - PILLAR_END_BMP_Y)); //V
// myGLCD.drawLine(x+c+1, y+PILLAR_GAP+PILLAR_END_BMP_Y,x+c+1, y+PILLAR_GAP+PILLAR_END_BMP_Y+ (BOTTOM_AREA_Y-y-PILLAR_GAP-PILLAR_END_BMP_Y));//V
c = c + 1;
// myGLCD.drawBitmap(x, j, (int)PILLAR_BMP_X, (int)PILLAR_BMP_Y, pillar);
}
// delete old columns
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(x + PILLAR_END_BMP_X, y + PILLAR_GAP, x + PILLAR_END_BMP_X + movingRate, y + PILLAR_GAP + BOTTOM_AREA_Y - (y + PILLAR_GAP));
drawGroundDeco();
}
/*****************************************************************************/
void drawGround(void)//земля желтая
{
//myGLCD.fillRect(0, BOTTOM_AREA_Y, TFTHEIGHT, 10, color565(47,175,68));
// myGLCD.drawFastHLine(0, BOTTOM_AREA_Y, TFTHEIGHT, BLACK);
myGLCD.setColor(VGA_BLACK);
myGLCD.drawLine(0, BOTTOM_AREA_Y, TFTHEIGHT - 200, BOTTOM_AREA_Y);
myGLCD.setColor((int)bottom_deco[0]);
myGLCD.setColor(VGA_YELLOW);
// myGLCD.drawFastHLine(0, BOTTOM_AREA_Y+1, TFTHEIGHT, (int)bottom_deco[0]); // the light green
myGLCD.drawLine(0, BOTTOM_AREA_Y + 1, TFTHEIGHT - 200, BOTTOM_AREA_Y + 1);
drawGroundDeco();
myGLCD.setColor((int)bottom_deco[6]);
//myGLCD.drawFastHLine(0, BOTTOM_AREA_Y+8, TFTHEIGHT, (int)bottom_deco[6]); // the dark green
myGLCD.drawLine(0, BOTTOM_AREA_Y + 8, TFTHEIGHT - 200, BOTTOM_AREA_Y + 8);
myGLCD.setColor((int)bottom_deco[0]);
// myGLCD.drawFastHLine(0, BOTTOM_AREA_Y+9, TFTHEIGHT, (int)bottom_deco[0]);
myGLCD.drawLine(0, BOTTOM_AREA_Y + 9, TFTHEIGHT - 200, BOTTOM_AREA_Y + 9);
// text area
// myGLCD.setColor(221,216,148);
myGLCD.setColor(VGA_YELLOW);
myGLCD.fillRect(0, BOTTOM_AREA_Y + 10, TFTHEIGHT - 200, TFTWIDTH);
}
/*****************************************************************************/
/*****************************************************************************/
void drawScore(void)//счет
{ // Draws the score
myGLCD.setFont(BigFont);
// myGLCD.setTextSize(2);
myGLCD.setColor(VGA_BLUE);
myGLCD.setBackColor(VGA_YELLOW);
// myGLCD.setTextColor(BLACK, myGLCD.color565(221, 216, 148));
// myGLCD.setCursor(90, 220);
// myGLCD.print(score);
myGLCD.printNumI(score, 100, 420);
//myGLCD.setCursor(260, 220);
// myGLCD.print(level+1);
myGLCD.printNumI(level + 1, 290, 420);
myGLCD.setColor(VGA_RED);
myGLCD.printNumI(life, 440, 420); //,5,5);
}
/*****************************************************************************/
//====== drawBird() - Custom Function
/*****************************************************************************/
void drawBird(int y)// герой ПТИЧКА
{
// delete previous bird
//myGLCD.fillRect(BIRD_X, y-fallRateInt, BIRD_BMP_X, BIRD_BMP_Y, BIRD_BG);
// Draws the new bird bitmap
// Serial.println (y);
// Serial.println (fallRateInt);
myGLCD.drawBitmap (BIRD_X, y, BORD_BMP_X, BORD_BMP_Y, bord);
/**/
// Draws blue rectangles above and below the bird to clear its previous state
if (fallRateInt > 0) {
myGLCD.setColor(BIRD_BG);
// myGLCD.setColor(VGA_RED);
// myGLCD.fillRect(BIRD_X, y-fallRateInt, BIRD_BMP_X, fallRateInt, BIRD_BG);
myGLCD.fillRect(BIRD_X, y - fallRateInt, BORD_BMP_X + BIRD_X, y);
// myGLCD.fillRect(BIRD_X, y-fallRateInt, BORD_BMP_X+BIRD_X, y-fallRateInt+BORD_BMP_Y);
} else if (fallRateInt < 0) {
//Serial.println("bird up");
myGLCD.setColor(BIRD_BG);
// myGLCD.setColor(VGA_RED);
myGLCD.fillRect(BIRD_X, y + BORD_BMP_Y, BORD_BMP_X + BIRD_X, y + BORD_BMP_Y - fallRateInt);
}
}
//****************Удар*************************************************************************************
void hit(void)//столкновение
{
for (int i = 0; i < 20; i++) {
if (i & 1)
{ myGLCD.drawBitmap (50, yB, BORD_BMP_X, BORD_BMP_Y, udar);
}
else
{ myGLCD.drawBitmap (50, yB, BORD_BMP_X, BORD_BMP_Y, bord);
}
delay(100);
}
delay(1000);
xP = -PILLAR_END_BMP_X;
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(0, 0, 500, BOTTOM_AREA_Y);
myGLCD.setBackColor(VGA_YELLOW);
myGLCD.setColor(VGA_RED);
//myGLCD.setTextColor(RED, BIRD_BG);
// myGLCD.setCursor(230,5);
// myGLCD.print("Life:",230,420);//,5,5);
// myGLCD.setCursor(285,5);
myGLCD.printNumI(life, 440, 420); //, 120, 6);
if (level > 3)movingRate = 1 + level / 2; //скорость дв пилонов
if (movingRate > 12)movingRate = 12;
score = score - 1;
delay(2000);
}
/*****************************************************************************/
/*****************************************************************************/
//======== gameOver() - Custom Function
/*****************************************************************************/
void gameOver(void)
{
// blink display
for (int i = 0; i < 10; i++) {
if (i & 1)
{ myGLCD.setColor(WHITE);
}
else myGLCD.setColor(RED);
myGLCD.fillRect(0, 0, TFTHEIGHT - 200, BOTTOM_AREA_Y);
}
delay(500); // 1 second
myGLCD.setColor(RED);
myGLCD.setBackColor(WHITE);
// myGLCD.setCursor(150,50);
// myGLCD.setTextSize(3);
// myGLCD.setTextColor(BLACK);//, BIRD_BG);
myGLCD.setFont(Ubuntubold);
myGLCD.print("GAME", 250, 150);
myGLCD.print("OVER!", 250, 250);
delay(1000);
myGLCD.setFont(BigFont);
myGLCD.setColor(VGA_BLUE);
myGLCD.print("TAP TO CONTINUE", 200, 360);
myGLCD.setFont(Ubuntubold);
boolean t = false;
while ( !t ) {
myGLCD.setColor(RED);
myGLCD.setBackColor(WHITE);
myGLCD.print("GAME", 250, 150);
myGLCD.print("OVER!", 250, 250);
uint32_t tim = millis();
if (score > highscore) {
highscore = score;
//EEPROM.write(0,highscore);
myGLCD.setBackColor(VGA_YELLOW);
myGLCD.setColor(VGA_BLUE);
myGLCD.printNumI(highscore, 175, 450);
}
int tim1 = 0 ;
while (tim1 < 100 || !t ) {
delay(300);
tim1++;
if (myTouch.dataAvailable())
{ myTouch.read();
xt = myTouch.getX();
yt = myTouch.getY();
Serial.print(" x = ");
Serial.print(xt);
Serial.print(", y = ");
Serial.println(yt);
if (xt > 10) {
if ( yt > 10)t = true;
}
}
myGLCD.setBackColor(RED);
myGLCD.setColor(WHITE);
myGLCD.print("GAME", 250, 150);
myGLCD.print("OVER!", 250, 250);
}
}
myGLCD.setColor(BIRD_BG);
myGLCD.fillRect(0, 0, 600, BOTTOM_AREA_Y);
myGLCD.setFont(BigFont);
delay(1000);
//// while( ts.getPoint(&p) ); // wait for touch release
// Writes the highest score in the EEPROM
// Restart game
birduino();
}