Musallam Bseiso / Mbed 2 deprecated nemesis_v1

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

Committer:
musallambseiso
Date:
Sun Apr 09 12:47:07 2017 +0000
Revision:
4:9660fc7ede8c
Parent:
3:9d0428a29f41
Child:
5:638ffc5c66f6
Added health drop and game over sequence

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 0:f59d874f3f14 6 #define FRIENDLY_WIDTH 6
musallambseiso 0:f59d874f3f14 7 #define FRIENDLY_HEIGHT 6
musallambseiso 0:f59d874f3f14 8 #define SHIP_SIZE 1
musallambseiso 0:f59d874f3f14 9 #define SHIP_SPEED 3
musallambseiso 0:f59d874f3f14 10
musallambseiso 0:f59d874f3f14 11 struct UserInput {
musallambseiso 0:f59d874f3f14 12 Direction d;
musallambseiso 0:f59d874f3f14 13 float mag;
musallambseiso 0:f59d874f3f14 14 };
musallambseiso 0:f59d874f3f14 15
musallambseiso 0:f59d874f3f14 16 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
musallambseiso 0:f59d874f3f14 17 Gamepad pad;
musallambseiso 0:f59d874f3f14 18 Engine engine;
musallambseiso 0:f59d874f3f14 19
musallambseiso 0:f59d874f3f14 20 void init();
musallambseiso 0:f59d874f3f14 21 void update_game(UserInput input);
musallambseiso 3:9d0428a29f41 22 void generate();
musallambseiso 4:9660fc7ede8c 23 void welcome();
musallambseiso 0:f59d874f3f14 24
musallambseiso 0:f59d874f3f14 25 int main()
musallambseiso 0:f59d874f3f14 26 {
musallambseiso 0:f59d874f3f14 27 int fps = 14;
musallambseiso 0:f59d874f3f14 28
musallambseiso 0:f59d874f3f14 29 init();
musallambseiso 4:9660fc7ede8c 30 welcome();
musallambseiso 3:9d0428a29f41 31 generate();
musallambseiso 0:f59d874f3f14 32 wait(1.0f/fps);
musallambseiso 0:f59d874f3f14 33
musallambseiso 0:f59d874f3f14 34 while (1) {
musallambseiso 0:f59d874f3f14 35 engine.read_input(pad);
musallambseiso 3:9d0428a29f41 36 engine.checker(lcd, pad);
musallambseiso 0:f59d874f3f14 37 engine.update(lcd, pad);
musallambseiso 3:9d0428a29f41 38 engine.shoot(lcd, pad, SHIP_SPEED);
musallambseiso 3:9d0428a29f41 39 generate();
musallambseiso 3:9d0428a29f41 40 engine.death(lcd, pad);
musallambseiso 0:f59d874f3f14 41 lcd.refresh();
musallambseiso 4:9660fc7ede8c 42 wait(1.0f/fps);
musallambseiso 0:f59d874f3f14 43 }
musallambseiso 0:f59d874f3f14 44 }
musallambseiso 0:f59d874f3f14 45
musallambseiso 0:f59d874f3f14 46 void init()
musallambseiso 0:f59d874f3f14 47 {
musallambseiso 0:f59d874f3f14 48 lcd.init();
musallambseiso 0:f59d874f3f14 49 pad.init();
musallambseiso 1:572782f723b5 50 engine.init(FRIENDLY_WIDTH,FRIENDLY_HEIGHT,SHIP_SIZE,SHIP_SPEED,lcd,pad);
musallambseiso 0:f59d874f3f14 51 }
musallambseiso 0:f59d874f3f14 52
musallambseiso 3:9d0428a29f41 53 void generate()
musallambseiso 0:f59d874f3f14 54 {
musallambseiso 0:f59d874f3f14 55 lcd.clear();
musallambseiso 3:9d0428a29f41 56 engine.draw(lcd); // grid, health
musallambseiso 3:9d0428a29f41 57 engine.ships_gen(lcd); // ships
musallambseiso 0:f59d874f3f14 58 lcd.refresh();
musallambseiso 4:9660fc7ede8c 59 }
musallambseiso 4:9660fc7ede8c 60
musallambseiso 4:9660fc7ede8c 61 void welcome() {
musallambseiso 4:9660fc7ede8c 62
musallambseiso 4:9660fc7ede8c 63 lcd.printString(" Press Start! ",0,4);
musallambseiso 4:9660fc7ede8c 64 lcd.refresh();
musallambseiso 4:9660fc7ede8c 65
musallambseiso 4:9660fc7ede8c 66 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
musallambseiso 4:9660fc7ede8c 67 wait(0.1);
musallambseiso 4:9660fc7ede8c 68 }
musallambseiso 0:f59d874f3f14 69 }