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: Enemy1 Enemy2 Enemy3 Enemy4 Enemy5 Enemy6 Engine Friendly Gamepad N5110 Rocket Stats mbed
main.cpp@8:ad3857f100fe, 2017-05-02 (annotated)
- Committer:
- musallambseiso
- Date:
- Tue May 02 22:14:51 2017 +0000
- Revision:
- 8:ad3857f100fe
- Parent:
- 7:577f791134e5
- Child:
- 9:51a357a1178c
Added Doxygen, tidied code, added second weapons type (star)
Who changed what in which revision?
User | Revision | Line number | New 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 | 7:577f791134e5 | 6 | #define STAGE_ONE 2 |
musallambseiso | 7:577f791134e5 | 7 | #define STAGE_TWO 3 |
musallambseiso | 7:577f791134e5 | 8 | #define STAGE_THREE 4 |
musallambseiso | 0:f59d874f3f14 | 9 | |
musallambseiso | 0:f59d874f3f14 | 10 | struct UserInput { |
musallambseiso | 0:f59d874f3f14 | 11 | Direction d; |
musallambseiso | 0:f59d874f3f14 | 12 | float mag; |
musallambseiso | 0:f59d874f3f14 | 13 | }; |
musallambseiso | 0:f59d874f3f14 | 14 | |
musallambseiso | 0:f59d874f3f14 | 15 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
musallambseiso | 0:f59d874f3f14 | 16 | Gamepad pad; |
musallambseiso | 0:f59d874f3f14 | 17 | Engine engine; |
musallambseiso | 0:f59d874f3f14 | 18 | |
musallambseiso | 0:f59d874f3f14 | 19 | void init(); |
musallambseiso | 0:f59d874f3f14 | 20 | void update_game(UserInput input); |
musallambseiso | 3:9d0428a29f41 | 21 | void generate(); |
musallambseiso | 4:9660fc7ede8c | 22 | void welcome(); |
musallambseiso | 0:f59d874f3f14 | 23 | |
musallambseiso | 0:f59d874f3f14 | 24 | int main() |
musallambseiso | 0:f59d874f3f14 | 25 | { |
musallambseiso | 0:f59d874f3f14 | 26 | int fps = 14; |
musallambseiso | 0:f59d874f3f14 | 27 | |
musallambseiso | 0:f59d874f3f14 | 28 | init(); |
musallambseiso | 4:9660fc7ede8c | 29 | welcome(); |
musallambseiso | 3:9d0428a29f41 | 30 | generate(); |
musallambseiso | 0:f59d874f3f14 | 31 | wait(1.0f/fps); |
musallambseiso | 0:f59d874f3f14 | 32 | |
musallambseiso | 0:f59d874f3f14 | 33 | while (1) { |
musallambseiso | 0:f59d874f3f14 | 34 | engine.read_input(pad); |
musallambseiso | 8:ad3857f100fe | 35 | engine.check_all(lcd, pad); |
musallambseiso | 8:ad3857f100fe | 36 | engine.update_all(lcd, pad); |
musallambseiso | 3:9d0428a29f41 | 37 | generate(); |
musallambseiso | 8:ad3857f100fe | 38 | engine.shoot_rocket(lcd, pad); |
musallambseiso | 8:ad3857f100fe | 39 | engine.shoot_star(lcd, pad); |
musallambseiso | 0:f59d874f3f14 | 40 | lcd.refresh(); |
musallambseiso | 4:9660fc7ede8c | 41 | wait(1.0f/fps); |
musallambseiso | 0:f59d874f3f14 | 42 | } |
musallambseiso | 0:f59d874f3f14 | 43 | } |
musallambseiso | 0:f59d874f3f14 | 44 | |
musallambseiso | 0:f59d874f3f14 | 45 | void init() |
musallambseiso | 0:f59d874f3f14 | 46 | { |
musallambseiso | 0:f59d874f3f14 | 47 | lcd.init(); |
musallambseiso | 0:f59d874f3f14 | 48 | pad.init(); |
musallambseiso | 7:577f791134e5 | 49 | engine.init(STAGE_ONE, lcd, pad); |
musallambseiso | 0:f59d874f3f14 | 50 | } |
musallambseiso | 0:f59d874f3f14 | 51 | |
musallambseiso | 3:9d0428a29f41 | 52 | void generate() |
musallambseiso | 0:f59d874f3f14 | 53 | { |
musallambseiso | 0:f59d874f3f14 | 54 | lcd.clear(); |
musallambseiso | 8:ad3857f100fe | 55 | engine.draw_all(lcd); // grid, health |
musallambseiso | 0:f59d874f3f14 | 56 | lcd.refresh(); |
musallambseiso | 4:9660fc7ede8c | 57 | } |
musallambseiso | 4:9660fc7ede8c | 58 | |
musallambseiso | 4:9660fc7ede8c | 59 | void welcome() { |
musallambseiso | 4:9660fc7ede8c | 60 | |
musallambseiso | 8:ad3857f100fe | 61 | lcd.printString(" NEMESIS ",0,2); |
musallambseiso | 4:9660fc7ede8c | 62 | lcd.printString(" Press Start! ",0,4); |
musallambseiso | 8:ad3857f100fe | 63 | |
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 | } |