A retro gaming programme, designed for use on a portable embedded system. Incorporates power saving techniques.

Dependencies:   ConfigFile N5110 PowerControl beep mbed

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) {