Version of Robotron arcade game using LPC1768, a Gameduino shield, a serial EEPROM (for high scores), two microswitch joysticks and two buttons plus a box to put it in. 20 levels of mayhem.

Dependencies:   25LCxxx_SPI CommonTypes Gameduino mbed

Revision:
18:70190f956a24
Parent:
17:194789db2215
--- a/HighScoreEntry.cpp	Sun Jun 16 08:54:57 2013 +0000
+++ b/HighScoreEntry.cpp	Mon Jun 17 15:10:43 2013 +0000
@@ -153,7 +153,7 @@
     // Read panel controls.
     controls->Read();
     inputs = controls->GetInputs();
-    // Only react to controls every so often to slow things down.
+    // Only react to joystick controls every so often to slow things down.
     if( countdown == 0 ) {
       countdown = 10;
       bool cursorMoved = false;
@@ -190,25 +190,6 @@
             cursorMoved = true;
         }
       }
-      if( inputs & PanelControls::Button1 ) {
-          // Button 1 adds a character or possibly does something special.
-          if( cursorRow < grid.GetRowCount() - 1 ) {
-              char newChar = (char)( PlayerName::MinChar + cursorRow * GRIDCOLUMNS + cursorColumn );
-              name->Name[ charIndex ] = newChar;
-              if( charIndex < PlayerName::Length - 1 ) {
-                  charIndex++;
-              }
-          }
-          else {
-              // Last row contains special functions.
-              SpecialFunction( gd, cursorColumn, name, done );
-          }
-          // Draw modified name.
-          gd->waitvblank();
-          DrawName( gd, name );
-          // Wait until player releases all controls.
-          WaitControls( gd, controls, false );
-      }
       // If necessary redraw the cursor.
       if( cursorMoved ) {
           WipeCursor( gd, lastCell );
@@ -218,6 +199,26 @@
     else {
       countdown--;
     }
+    // Read button 1 on every loop to get instant response,
+    if( inputs & PanelControls::Button1 ) {
+        // Button 1 adds a character or possibly does something special.
+        if( cursorRow < grid.GetRowCount() - 1 ) {
+            char newChar = (char)( PlayerName::MinChar + cursorRow * GRIDCOLUMNS + cursorColumn );
+            name->Name[ charIndex ] = newChar;
+            if( charIndex < PlayerName::Length - 1 ) {
+                charIndex++;
+            }
+        }
+        else {
+            // Last row contains special functions.
+            SpecialFunction( gd, cursorColumn, name, done );
+        }
+        // Draw modified name.
+        gd->waitvblank();
+        DrawName( gd, name );
+        // Wait until player releases all controls.
+        WaitControls( gd, controls, false );
+    }
     // Wait for vertical flyback. Then do animation.
     gd->waitvblank();
     FrameCounter++;