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: N5110 PowerControl mbed
Diff: main.cpp
- Revision:
- 10:59c874d006ab
- Parent:
- 9:3cad581b5419
- Child:
- 11:b86a15d26de9
--- a/main.cpp Sun Apr 19 15:56:31 2015 +0000 +++ b/main.cpp Fri Apr 24 22:34:34 2015 +0000 @@ -28,6 +28,9 @@ #define SOUTH 0 #define EAST 1 +#define MAIN_MENU 0 +#define GAME 1 + struct TILES { char Symbol; // Symbol for this tile bool Passable; // Can tile be walked on @@ -44,10 +47,7 @@ //Variables int ActFlag = 0; int StartFlag = 0; -int UpFlag = 0; -int DownFlag = 0; -int LeftFlag = 0; -int RightFlag = 0; +int DirFlag = 0; int map[84][48]; @@ -65,6 +65,12 @@ int n; +int menu; + +bool screen; + +int level; + //Space type player is on int pSpace; @@ -88,21 +94,11 @@ { StartFlag = 1; } -void UpPressed() -{ - UpFlag= 1; -} -void DownPressed() +void DirPressed() { - DownFlag = 1; -} -void LeftPressed() -{ - LeftFlag = 1; -} -void RightPressed() -{ - RightFlag = 1; + + DirFlag = 1; + } void Walls() @@ -243,9 +239,9 @@ } } -void DeadEnds() +void DeadEnds(int d) { - for (int del = 20; del > 0; del--) { + for (int del = d; del > 0; del--) { for(int i = 0; i < 84; i++) { for(int j = 0; j < 48; j++) { @@ -332,7 +328,7 @@ Border(); - DeadEnds(); + DeadEnds(20); } @@ -342,9 +338,6 @@ FirstRoom(); ExitRoom(); - DrawMap(); - wait(2.0); - Maze(); RandFloor(551); @@ -357,7 +350,7 @@ { Walls(); -//LabyrinthBuilder(); + //LabyrinthBuilder(); DungeonBuilder(); px = enx; @@ -435,7 +428,89 @@ } StartFlag = 0; } +} +void Intro() +{ + lcd.clear(); + lcd.printString("TBG RPG", 20, 2); + lcd.refresh(); + wait(1.0); +} + +void LevelScreen() +{ + char buffer[1]; + int length = sprintf(buffer,"Level %d",level); // print formatted data to buffer + + lcd.clear(); + lcd.printString(buffer, 20, 2); + lcd.refresh(); + wait(1.0); + +} + +void GameLoop() +{ + + level++; + + World(); + + LevelScreen(); + + //Game loop + while(1) { + + PlayerCamera(); + Sleep(); + + + if(DirFlag) { + + DirFlag = 0; + + PlayerMove(); + } + if(StartFlag) { + + StartFlag = 0; + + StartMenu(); + } + } +} + +void MainMenu() +{ + + while(1) { + lcd.clear(); + if(menu == 0) { + lcd.printString("New Game <", 20, 1); + lcd.printString("Options",20,3); + lcd.refresh(); + Sleep(); + } else { + lcd.printString("New Game", 20, 1); + lcd.printString("Options <",20,3); + lcd.refresh(); + Sleep(); + } + + if(DirFlag) { + + DirFlag = 0; + + menu = !menu; + } + if(ActFlag && menu == 0) { + + ActFlag = 0; + + GameLoop(); + } + } } int main() @@ -444,13 +519,12 @@ PHY_PowerDown (); int result = semihost_powerdown(); - Up.rise(&UpPressed); - Down.rise(&DownPressed); - Right.rise(&RightPressed); - Left.rise(&LeftPressed); + Up.rise(&DirPressed); + Down.rise(&DirPressed); + Right.rise(&DirPressed); + Left.rise(&DirPressed); Start.rise(&StartPressed); - - + Act.rise(&ActPressed); //Generate random seed srand(Noise*1000000); @@ -458,29 +532,8 @@ //Initilize screen lcd.init(); - World(); - - //Game loop - while(1) { - - PlayerCamera(); - Sleep(); - if(UpFlag || DownFlag || RightFlag || LeftFlag) { + Intro(); - UpFlag = 0; - DownFlag = 0; - RightFlag = 0; - LeftFlag = 0; - - PlayerMove(); - } - if(StartFlag) { + MainMenu(); - StartFlag = 0; - - StartMenu(); - - } - - } -} \ No newline at end of file +}