harry rance
/
Revised_Space_Invaders
Harry Rance 200925395 Embedded Systems Project
main.cpp@2:50feb42b982c, 2017-04-26 (annotated)
- Committer:
- harryrance
- Date:
- Wed Apr 26 17:40:17 2017 +0000
- Revision:
- 2:50feb42b982c
- Parent:
- 1:95d7dd44bb0d
- Child:
- 3:43970d8d642e
Game engine complete. Boss fight implemented (very hard!) and end game screen characteristics change depending on whether you defeated the boss or the boss defeated you.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
harryrance | 0:c9bf674fe0c7 | 1 | ////////// pre-processor directives ////////// |
harryrance | 0:c9bf674fe0c7 | 2 | #include "mbed.h" |
harryrance | 0:c9bf674fe0c7 | 3 | #include "Gamepad.h" |
harryrance | 0:c9bf674fe0c7 | 4 | #include "N5110.h" |
harryrance | 0:c9bf674fe0c7 | 5 | #include "GameEngine.h" |
harryrance | 0:c9bf674fe0c7 | 6 | |
harryrance | 1:95d7dd44bb0d | 7 | #define US_X 42 |
harryrance | 0:c9bf674fe0c7 | 8 | #define AA_X 2 |
harryrance | 2:50feb42b982c | 9 | #define SPEED 1.5 |
harryrance | 0:c9bf674fe0c7 | 10 | |
harryrance | 0:c9bf674fe0c7 | 11 | ////////// structs ////////// |
harryrance | 0:c9bf674fe0c7 | 12 | struct UserInput { |
harryrance | 0:c9bf674fe0c7 | 13 | Direction d; |
harryrance | 0:c9bf674fe0c7 | 14 | float mag; |
harryrance | 0:c9bf674fe0c7 | 15 | }; |
harryrance | 0:c9bf674fe0c7 | 16 | |
harryrance | 0:c9bf674fe0c7 | 17 | ////////// objects ////////// |
harryrance | 0:c9bf674fe0c7 | 18 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
harryrance | 0:c9bf674fe0c7 | 19 | Gamepad pad; |
harryrance | 0:c9bf674fe0c7 | 20 | GameEngine engine; |
harryrance | 0:c9bf674fe0c7 | 21 | |
harryrance | 0:c9bf674fe0c7 | 22 | ////////// prototypes ////////// |
harryrance | 0:c9bf674fe0c7 | 23 | void init(); |
harryrance | 0:c9bf674fe0c7 | 24 | void render(); |
harryrance | 0:c9bf674fe0c7 | 25 | void update_game(UserInput input); |
harryrance | 0:c9bf674fe0c7 | 26 | |
harryrance | 0:c9bf674fe0c7 | 27 | ////////// functions ////////// |
harryrance | 0:c9bf674fe0c7 | 28 | int main() |
harryrance | 0:c9bf674fe0c7 | 29 | { |
harryrance | 0:c9bf674fe0c7 | 30 | int fps = 30; |
harryrance | 0:c9bf674fe0c7 | 31 | |
harryrance | 0:c9bf674fe0c7 | 32 | init(); |
harryrance | 0:c9bf674fe0c7 | 33 | render(); |
harryrance | 0:c9bf674fe0c7 | 34 | wait(1.0f/fps); |
harryrance | 0:c9bf674fe0c7 | 35 | |
harryrance | 0:c9bf674fe0c7 | 36 | while(1){ |
harryrance | 0:c9bf674fe0c7 | 37 | engine.read_input(pad); |
harryrance | 0:c9bf674fe0c7 | 38 | engine.update(pad); |
harryrance | 0:c9bf674fe0c7 | 39 | render(); |
harryrance | 0:c9bf674fe0c7 | 40 | wait(1.0f/fps); |
harryrance | 0:c9bf674fe0c7 | 41 | } |
harryrance | 0:c9bf674fe0c7 | 42 | } |
harryrance | 0:c9bf674fe0c7 | 43 | |
harryrance | 0:c9bf674fe0c7 | 44 | void render() |
harryrance | 0:c9bf674fe0c7 | 45 | { |
harryrance | 0:c9bf674fe0c7 | 46 | lcd.clear(); |
harryrance | 0:c9bf674fe0c7 | 47 | engine.draw(lcd); |
harryrance | 0:c9bf674fe0c7 | 48 | lcd.refresh(); |
harryrance | 0:c9bf674fe0c7 | 49 | } |
harryrance | 0:c9bf674fe0c7 | 50 | |
harryrance | 0:c9bf674fe0c7 | 51 | void init() |
harryrance | 0:c9bf674fe0c7 | 52 | { |
harryrance | 0:c9bf674fe0c7 | 53 | lcd.init(); |
harryrance | 0:c9bf674fe0c7 | 54 | pad.init(); |
harryrance | 0:c9bf674fe0c7 | 55 | |
harryrance | 2:50feb42b982c | 56 | engine.initialise(US_X, AA_X, SPEED); |
harryrance | 0:c9bf674fe0c7 | 57 | |
harryrance | 0:c9bf674fe0c7 | 58 | } |
harryrance | 0:c9bf674fe0c7 | 59 |