Musallam Bseiso / Mbed 2 deprecated nemesis_v1

Dependencies:   Enemy1 Enemy2 Enemy3 Enemy4 Enemy5 Enemy6 Engine Friendly Gamepad N5110 Rocket Stats mbed

Committer:
musallambseiso
Date:
Thu May 04 11:29:56 2017 +0000
Revision:
10:34fa0a4f5513
Parent:
9:51a357a1178c
Final version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
musallambseiso 0:f59d874f3f14 1 #include "mbed.h"
musallambseiso 0:f59d874f3f14 2 #include "Gamepad.h"
musallambseiso 0:f59d874f3f14 3 #include "N5110.h"
musallambseiso 0:f59d874f3f14 4 #include "Engine.h"
musallambseiso 0:f59d874f3f14 5
musallambseiso 9:51a357a1178c 6 #define LEVEL_ONE 2
musallambseiso 0:f59d874f3f14 7
musallambseiso 0:f59d874f3f14 8 struct UserInput {
musallambseiso 0:f59d874f3f14 9 Direction d;
musallambseiso 0:f59d874f3f14 10 float mag;
musallambseiso 0:f59d874f3f14 11 };
musallambseiso 0:f59d874f3f14 12
musallambseiso 9:51a357a1178c 13 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // LCD pin connections.
musallambseiso 9:51a357a1178c 14 Gamepad pad; // Gamepad object.
musallambseiso 9:51a357a1178c 15 Engine engine; // Engine object.
musallambseiso 9:51a357a1178c 16
musallambseiso 9:51a357a1178c 17
musallambseiso 9:51a357a1178c 18 /** Initialize
musallambseiso 9:51a357a1178c 19 *
musallambseiso 9:51a357a1178c 20 * Initializes LCD, gamepad, and engine.
musallambseiso 9:51a357a1178c 21 */
musallambseiso 9:51a357a1178c 22 void init();
musallambseiso 9:51a357a1178c 23
musallambseiso 0:f59d874f3f14 24
musallambseiso 9:51a357a1178c 25 /** Generate
musallambseiso 9:51a357a1178c 26 *
musallambseiso 9:51a357a1178c 27 * Draws all the elements onto the LCD, from the engine.
musallambseiso 9:51a357a1178c 28 */
musallambseiso 3:9d0428a29f41 29 void generate();
musallambseiso 9:51a357a1178c 30
musallambseiso 9:51a357a1178c 31
musallambseiso 9:51a357a1178c 32 /** Welcome Screen
musallambseiso 9:51a357a1178c 33 *
musallambseiso 9:51a357a1178c 34 * Prints the welcome message to the LCD, and waits for the start button to be pressed
musallambseiso 9:51a357a1178c 35 * to start the game.
musallambseiso 9:51a357a1178c 36 */
musallambseiso 4:9660fc7ede8c 37 void welcome();
musallambseiso 0:f59d874f3f14 38
musallambseiso 9:51a357a1178c 39
musallambseiso 0:f59d874f3f14 40 int main()
musallambseiso 0:f59d874f3f14 41 {
musallambseiso 9:51a357a1178c 42 int fps = 14; // Framerate.
musallambseiso 0:f59d874f3f14 43
musallambseiso 9:51a357a1178c 44 init(); // Initialization.
musallambseiso 9:51a357a1178c 45 welcome(); // Welcome screen.
musallambseiso 0:f59d874f3f14 46 wait(1.0f/fps);
musallambseiso 0:f59d874f3f14 47
musallambseiso 9:51a357a1178c 48
musallambseiso 9:51a357a1178c 49 // Game loop:
musallambseiso 9:51a357a1178c 50 while (1) {
musallambseiso 9:51a357a1178c 51 engine.read_input(pad); // Reads gamepad input to log changes in analog stick movement.
musallambseiso 9:51a357a1178c 52 engine.check_all(lcd, pad); // Checking method for all the elements, from the engine.
musallambseiso 9:51a357a1178c 53 engine.update_all(lcd, pad); // Updating method for all the elements, from the engine.
musallambseiso 9:51a357a1178c 54 generate(); // Drawing.
musallambseiso 9:51a357a1178c 55 engine.shoot_rocket(lcd, pad); // Rocket shooting method, from the engine.
musallambseiso 9:51a357a1178c 56 engine.shoot_star(lcd, pad); // Star shooting method, from the engine.
musallambseiso 0:f59d874f3f14 57 lcd.refresh();
musallambseiso 4:9660fc7ede8c 58 wait(1.0f/fps);
musallambseiso 0:f59d874f3f14 59 }
musallambseiso 0:f59d874f3f14 60 }
musallambseiso 0:f59d874f3f14 61
musallambseiso 9:51a357a1178c 62
musallambseiso 9:51a357a1178c 63 // Initialization:
musallambseiso 9:51a357a1178c 64
musallambseiso 0:f59d874f3f14 65 void init()
musallambseiso 0:f59d874f3f14 66 {
musallambseiso 9:51a357a1178c 67 lcd.init(); // LCD initialization.
musallambseiso 9:51a357a1178c 68 pad.init(); // Gamepad initialization.
musallambseiso 9:51a357a1178c 69 engine.init(LEVEL_ONE, lcd, pad, 0, 0, 3, true, 3); // Engine initialization, using initial values for variables.
musallambseiso 0:f59d874f3f14 70 }
musallambseiso 0:f59d874f3f14 71
musallambseiso 9:51a357a1178c 72
musallambseiso 9:51a357a1178c 73 // Draws everything:
musallambseiso 9:51a357a1178c 74
musallambseiso 3:9d0428a29f41 75 void generate()
musallambseiso 0:f59d874f3f14 76 {
musallambseiso 0:f59d874f3f14 77 lcd.clear();
musallambseiso 9:51a357a1178c 78 engine.draw_all(lcd); // Draws all the elements to the LCD screen, from the engine.
musallambseiso 0:f59d874f3f14 79 lcd.refresh();
musallambseiso 4:9660fc7ede8c 80 }
musallambseiso 4:9660fc7ede8c 81
musallambseiso 9:51a357a1178c 82
musallambseiso 9:51a357a1178c 83 // Draws the welcome screen:
musallambseiso 9:51a357a1178c 84
musallambseiso 4:9660fc7ede8c 85 void welcome() {
musallambseiso 4:9660fc7ede8c 86
musallambseiso 10:34fa0a4f5513 87 lcd.printString(" NEMESIS ",0,0);
musallambseiso 10:34fa0a4f5513 88 lcd.printString("A&B: shoot",0,2);
musallambseiso 10:34fa0a4f5513 89 lcd.printString("R&L: LCD mode",0,3);
musallambseiso 10:34fa0a4f5513 90 lcd.printString("START: pause",0,4);
musallambseiso 10:34fa0a4f5513 91 lcd.printString(" Press Start! ",0,5);
musallambseiso 8:ad3857f100fe 92
musallambseiso 4:9660fc7ede8c 93 lcd.refresh();
musallambseiso 4:9660fc7ede8c 94
musallambseiso 4:9660fc7ede8c 95 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
musallambseiso 9:51a357a1178c 96 wait(0.1); // Waits till the start button is pressed.
musallambseiso 4:9660fc7ede8c 97 }
musallambseiso 0:f59d874f3f14 98 }