A retro gaming programme, designed for use on a portable embedded system. Incorporates power saving techniques.
Dependencies: ConfigFile N5110 PowerControl beep mbed
Diff: main.cpp
- Revision:
- 6:fa2928bcec17
- Parent:
- 5:a0e4a67266d6
- Child:
- 7:217810c90306
--- a/main.cpp Tue Apr 14 19:06:53 2015 +0000 +++ b/main.cpp Tue Apr 14 22:56:49 2015 +0000 @@ -210,10 +210,6 @@ lcd.drawRect(27,29,4,0,1); lcd.drawRect(28,28,2,0,1); lcd.drawRect(29,27,0,0,1); - - //present options - //lcd.printString("Play Game",3,4); - } // static background @@ -276,7 +272,6 @@ lcd.drawRect(a7,36,0,0,1); lcd.drawRect(a5,37,0,0,1); lcd.drawRect(a8,38,0,0,1); - } // resets back to initial values @@ -364,7 +359,7 @@ if (randY6>=48) { randY6=0; - score = score++; + score = score++;//increment score by 1 after each wave of hazards randX1 = rand() % 74 + 5;// psuedo random number randX2 = rand() % 74 + 5;// between 5 and 74 @@ -434,6 +429,9 @@ randX5 = rand() % 74 + 5; randX6 = rand() % 74 + 5; +// char buffer[14]; +// int length = sprintf(buffer,"Level:%2d",score);//insert int level + calibrateJoystick(); // get centred values of joystick pollJoystick.attach(&updateJoystick,1.0/10.0); // read joystick 10 times per second @@ -503,9 +501,18 @@ backButton(); backGround(); + // if (length <= 12) // if string < 12 characters + // lcd.printString(buffer,3,0);// display on screen + // loop 3 - Game loop while(1) { + // print score - top left of display + char buffer[14];//create buffer for string + int length = sprintf(buffer,"Level:%d",score);//insert buffer + if (length <= 14) //ensure length is smaller than screen + lcd.printString(buffer,3,0);//display + actionButton(); backButton(); @@ -561,7 +568,7 @@ // character has been hit // and the game ends if ( contactPoint !=0) { - lcd.printString("Game Over!!",8,25); + lcd.printString("Game Over",17,2); wait(0.5); lcd.inverseMode(); wait(0.5); @@ -586,6 +593,18 @@ lcd.printString("Exit Game?",10,25); backGround(); + // option arrow - right + lcd.drawRect(55,25,0,4,1); + lcd.drawRect(56,26,0,2,1); + lcd.drawRect(57,27,0,0,1); + + // option arrow - left + lcd.drawRect(27,25,0,4,1); + lcd.drawRect(26,26,0,2,1); + lcd.drawRect(25,27,0,0,1); + + + while(1) { if (printFlag) { //if flag set, clear flag and print joystick values to serial port @@ -610,10 +629,10 @@ } // draws option cursor if(exitOption == 0) { - lcd.printString("YES",28,27); + lcd.printString("YES",29,27); } if(exitOption == 1) { - lcd.printString("NO ",28,27); + lcd.printString(" NO",29,27); } // exits game @@ -649,9 +668,24 @@ backButton(); lcd.clear();//clear screen - lcd.drawRect(3,6,77,10,0);//title outline backGround();//set background - lcd.printString("High Scores",10,7);//title + lcd.printString("High Scores",10,0);//title + + // players high scores - highest first + char highScore1[14];//create buffer for strings + char highScore2[14]; + char highScore3[14]; + + int player1 = sprintf(highScore1,"1.DRT.....99",score);//insert buffer + int player2 = sprintf(highScore2,"2.NRG.....98",score);//insert buffer + int player3 = sprintf(highScore3,"3.GRT.....10",score);//insert buffer + + if (player1 <= 14) //ensure length is smaller than screen + lcd.printString(highScore1,5,2);//display + if (player2 <= 14) //ensure length is smaller than screen + lcd.printString(highScore2,5,3);//display + if (player3 <= 14) //ensure length is smaller than screen + lcd.printString(highScore3,5,4);//display while(1) {