Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ConfigFile N5110 PowerControl beep mbed
Revision 76:c11cb774bd27, committed 2015-05-10
- Comitter:
- el13drt
- Date:
- Sun May 10 19:29:46 2015 +0000
- Parent:
- 75:445c1ea33944
- Child:
- 77:b37c6a0d8758
- Commit message:
- post game flag;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| tower.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun May 10 13:31:26 2015 +0000
+++ b/main.cpp Sun May 10 19:29:46 2015 +0000
@@ -48,23 +48,23 @@
///check file size - if size acceptable, prints buffer to location.
if (cfg.getValue(key1, &player1initials[0], sizeof(player1initials))) {
serial.printf("%s\n",player1initials);
- char a = (int)player1initials[10];
- highScore1 = a;
- serial.printf("%c\n",highScore1);
+ char a = player1initials[10];
+ highScore1 = atoi((char*)a);
+ sprintf (player1initials, "%i",highScore1);
}
//check file size - if size acceptable, prints buffer to location.
if (cfg.getValue(key2, &player2initials[0], sizeof(player2initials))) {
serial.printf("%s\n",player2initials);
- char b = (int)player2initials[10];
- highScore2 = b;
- serial.printf("%c\n",highScore2);
+ char b = player2initials[10];
+ highScore2 = atoi((char*)b);
+ serial.printf("%c\n",b);
}
//check file size - if size acceptable, prints buffer to location.
if (cfg.getValue(key3, &player3initials[0], sizeof(player3initials))) {
serial.printf("%s\n",player3initials);
- char c = (int)player3initials[10];
- highScore3 = c;
- serial.printf("%c\n",highScore3);
+ char c = player3initials[10];
+ highScore3 = atoi((char*)c);
+ serial.printf("%c\n",c);
}
}
@@ -139,20 +139,22 @@
///If buttonA is pressed - set flag A.
void timerExpiredA()
{
- if(buttonA == 1) {
+ if((deBounce1.read_ms()>=95)&&(buttonA == 1)) {
buttonFlagA = 1;
lcd.setBrightness(1.0);
serial.printf("flagA set\n");
+ deBounce1.reset();//reset timer
}
}
///If buttonB is pressed - Set flag B.
void timerExpiredB()
{
- if(buttonB == 1) {
+ if((deBounce2.read_ms()>=95)&&(buttonB == 1)) {
buttonFlagB = 1;
lcd.setBrightness(1.0);
serial.printf("flagB set\n");
+ deBounce2.reset();//reset timer
}
}
@@ -946,6 +948,12 @@
lcd.refresh();
}
+
+//game flag for delay
+void gameLoop(){
+ gameFlag = 1;
+}
+
///Shifts and stores the new scores accordingly.
void newScore()
{
@@ -1075,6 +1083,8 @@
while(1) {
+ if(gameFlag){
+ gameFlag = 0;
//print score - top left of display
char buffer [14];//create buffer for string
int length = sprintf(buffer,"Level:%d",score);//insert buffer
@@ -1084,8 +1094,8 @@
drawNinja();//set character
drawHazards();//initiates hazards
hazardFall();//increments hazards towards floor
- wait(0.1);//slow down objects
-
+ //wait(0.1);
+
if (printFlag) { //if flag set, clear flag and print joystick values to serial port
printFlag = 0;
if (joystick.direction == RIGHT) {
@@ -1139,7 +1149,7 @@
write();
resetGame();//reset values
break;
- }
+ }
lcd.refresh();//refresh screen
startrek();//clears unset pixels, keeps set pixels
@@ -1181,8 +1191,10 @@
}
}
serial.printf("Score: %i \n",score);//print Score for debug
+
+ }
}
- }
+ }
}
///Draws Scores Menu.
@@ -1360,10 +1372,13 @@
int exitOption = 1;//counter for exit menu
read();//set high scores using flash memory
+ deBounce1.start();//timer buttonA debounce
+ deBounce2.start();//timer buttonB debounce
+ timerGame.attach(&gameLoop,0.1);//timer game delay
timerA.attach(&timerExpiredA, 0.1);//checks state of buttonA
timerB.attach(&timerExpiredB, 0.1);//checks state of buttonB
idleMode();//turns off screen if idle.
-
+
while(1) {
drawMainMenu();//draws main menu
mainMenu(mainOption);//presents main menu options
--- a/tower.h Sun May 10 13:31:26 2015 +0000 +++ b/tower.h Sun May 10 19:29:46 2015 +0000 @@ -33,6 +33,24 @@ Serial serial(USBTX, USBRX); /** +@namespace deBounce +@brief Creates a minimum time span of before buttonA is acknowledged; at intervals of 0.1 sec. +*/ +Timer deBounce1;//for buttonA + +/** +@namespace deBounce +@brief Creates a minimum time span of before buttonB is acknowledged; at intervals of 0.1 sec. +*/ +Timer deBounce2;//for buttonB + +/** +@namespace timerGame +@brief Creates a minimum time span before the game loops; at intervals of 0.1 sec. +*/ +Ticker timerGame;//for game + +/** @namespace timerA @brief Calls the function, timerExpiredA(); at intervals of 0.1 sec. */ @@ -117,6 +135,9 @@ int buttonFlagA = 0;/*!< Button flag set for ISR when state of buttonA changes. */ int buttonFlagB = 0;/*!< Button flag set for ISR when state of buttonB changes. */ +//flag for game loop +int gameFlag = 0;/*!< Button flag set for ISR when game is entered. */ + //flag for joystick reading int printFlag = 0;/*!< Print flag set for ISR when Joystick is moved. */