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: mbed
Imposs/ImpossEngine.h@13:fd290d2fd917, 2020-05-26 (annotated)
- Committer:
- ll17lrc
- Date:
- Tue May 26 22:41:23 2020 +0000
- Revision:
- 13:fd290d2fd917
- Parent:
- 11:7a4abe731f9c
Final Submission. I have read and agreed with Statement of Academic Integrity.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ll17lrc | 2:823dea76ff2e | 1 | #ifndef IMPOSSENGINE_H |
ll17lrc | 2:823dea76ff2e | 2 | #define IMPOSSENGINE_H |
ll17lrc | 2:823dea76ff2e | 3 | |
ll17lrc | 2:823dea76ff2e | 4 | #include "mbed.h" |
ll17lrc | 2:823dea76ff2e | 5 | #include "N5110.h" |
ll17lrc | 2:823dea76ff2e | 6 | #include "Gamepad.h" |
ll17lrc | 2:823dea76ff2e | 7 | #include "Ball.h" |
ll17lrc | 2:823dea76ff2e | 8 | #include "StartMenu.h" |
ll17lrc | 2:823dea76ff2e | 9 | #include "Zero.h" |
ll17lrc | 2:823dea76ff2e | 10 | #include "One.h" |
ll17lrc | 8:10eb578dd754 | 11 | #include "Two.h" |
ll17lrc | 9:e2dd152867d1 | 12 | #include "Three.h" |
ll17lrc | 9:e2dd152867d1 | 13 | #include "Four.h" |
ll17lrc | 11:7a4abe731f9c | 14 | #include "Five.h" |
ll17lrc | 2:823dea76ff2e | 15 | |
ll17lrc | 10:df6a496270be | 16 | |
ll17lrc | 2:823dea76ff2e | 17 | // gap from edge of screen |
ll17lrc | 2:823dea76ff2e | 18 | |
ll17lrc | 2:823dea76ff2e | 19 | class ImpossEngine |
ll17lrc | 2:823dea76ff2e | 20 | { |
ll17lrc | 2:823dea76ff2e | 21 | |
ll17lrc | 2:823dea76ff2e | 22 | public: |
ll17lrc | 13:fd290d2fd917 | 23 | |
ll17lrc | 13:fd290d2fd917 | 24 | /** Constructor */ |
ll17lrc | 2:823dea76ff2e | 25 | ImpossEngine(); |
ll17lrc | 13:fd290d2fd917 | 26 | |
ll17lrc | 13:fd290d2fd917 | 27 | /** Destructor */ |
ll17lrc | 2:823dea76ff2e | 28 | ~ImpossEngine(); |
ll17lrc | 2:823dea76ff2e | 29 | |
ll17lrc | 13:fd290d2fd917 | 30 | /** Gets user input via the gamepad |
ll17lrc | 13:fd290d2fd917 | 31 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 32 | */ |
ll17lrc | 2:823dea76ff2e | 33 | void read_input(Gamepad &pad); |
ll17lrc | 13:fd290d2fd917 | 34 | |
ll17lrc | 13:fd290d2fd917 | 35 | /** Updates all of the values for the ball and maps |
ll17lrc | 13:fd290d2fd917 | 36 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 37 | * @param lcd N5110 object |
ll17lrc | 13:fd290d2fd917 | 38 | */ |
ll17lrc | 7:35465b3bf586 | 39 | void update(Gamepad &pad,N5110 &lcd); |
ll17lrc | 13:fd290d2fd917 | 40 | |
ll17lrc | 13:fd290d2fd917 | 41 | /** Draws the level, ball and objects in the levels |
ll17lrc | 13:fd290d2fd917 | 42 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 43 | * @param lcd N5110 object |
ll17lrc | 13:fd290d2fd917 | 44 | */ |
ll17lrc | 8:10eb578dd754 | 45 | void draw(N5110 &lcd,Gamepad &pad); |
ll17lrc | 13:fd290d2fd917 | 46 | |
ll17lrc | 13:fd290d2fd917 | 47 | /** Goes to the start menu, also initialises the ball |
ll17lrc | 13:fd290d2fd917 | 48 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 49 | * @param lcd N5110 object |
ll17lrc | 13:fd290d2fd917 | 50 | */ |
ll17lrc | 4:a9d5fca3b7ba | 51 | void complete(Gamepad &pad,N5110 &lcd); |
ll17lrc | 13:fd290d2fd917 | 52 | |
ll17lrc | 13:fd290d2fd917 | 53 | /** Sets the level to zero |
ll17lrc | 13:fd290d2fd917 | 54 | */ |
ll17lrc | 4:a9d5fca3b7ba | 55 | void set_level_zero(); |
ll17lrc | 13:fd290d2fd917 | 56 | |
ll17lrc | 13:fd290d2fd917 | 57 | /** Stores the value of the level |
ll17lrc | 13:fd290d2fd917 | 58 | */ |
ll17lrc | 10:df6a496270be | 59 | int level; |
ll17lrc | 2:823dea76ff2e | 60 | |
ll17lrc | 2:823dea76ff2e | 61 | private: |
ll17lrc | 2:823dea76ff2e | 62 | |
ll17lrc | 13:fd290d2fd917 | 63 | /** Checks for a collision between the ball and a wall/object |
ll17lrc | 13:fd290d2fd917 | 64 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 65 | * @param lcd N5110 object |
ll17lrc | 13:fd290d2fd917 | 66 | */ |
ll17lrc | 4:a9d5fca3b7ba | 67 | void check_collision(Gamepad &pad, N5110 &lcd); |
ll17lrc | 13:fd290d2fd917 | 68 | |
ll17lrc | 13:fd290d2fd917 | 69 | /** Checks if the level has been completed |
ll17lrc | 13:fd290d2fd917 | 70 | * @param pad Gamepad object |
ll17lrc | 13:fd290d2fd917 | 71 | * @param lcd N5110 object |
ll17lrc | 13:fd290d2fd917 | 72 | */ |
ll17lrc | 9:e2dd152867d1 | 73 | void check_finish(Gamepad &pad); |
ll17lrc | 2:823dea76ff2e | 74 | |
ll17lrc | 13:fd290d2fd917 | 75 | Ball _ball; //Ball function call |
ll17lrc | 13:fd290d2fd917 | 76 | One _one; //Level Zero function call |
ll17lrc | 13:fd290d2fd917 | 77 | Zero _zero; //Level One function call |
ll17lrc | 13:fd290d2fd917 | 78 | Two _two; // Level Two function call |
ll17lrc | 13:fd290d2fd917 | 79 | Three _three; // Level Three function call |
ll17lrc | 13:fd290d2fd917 | 80 | Four _four; // Level Four function call |
ll17lrc | 13:fd290d2fd917 | 81 | Five _five; // Level Five function call |
ll17lrc | 13:fd290d2fd917 | 82 | |
ll17lrc | 13:fd290d2fd917 | 83 | /* Stores the x position of the ball */ |
ll17lrc | 13:fd290d2fd917 | 84 | int x_pos; |
ll17lrc | 4:a9d5fca3b7ba | 85 | |
ll17lrc | 13:fd290d2fd917 | 86 | /* Stores the y postition of the ball */ |
ll17lrc | 4:a9d5fca3b7ba | 87 | int y_pos; |
ll17lrc | 13:fd290d2fd917 | 88 | |
ll17lrc | 13:fd290d2fd917 | 89 | /* Used as a counter to check if a collision has occured */ |
ll17lrc | 7:35465b3bf586 | 90 | int x; |
ll17lrc | 13:fd290d2fd917 | 91 | |
ll17lrc | 13:fd290d2fd917 | 92 | /* Used as a counter to check if a collision has occured */ |
ll17lrc | 7:35465b3bf586 | 93 | int y; |
ll17lrc | 13:fd290d2fd917 | 94 | |
ll17lrc | 13:fd290d2fd917 | 95 | /* Used to store the value returned when fetching the x co-ordinate of the |
ll17lrc | 13:fd290d2fd917 | 96 | balle */ |
ll17lrc | 7:35465b3bf586 | 97 | int pos; |
ll17lrc | 2:823dea76ff2e | 98 | |
ll17lrc | 13:fd290d2fd917 | 99 | Direction _d; //Direction function call |
ll17lrc | 13:fd290d2fd917 | 100 | float _mag; //Magnitude function call |
ll17lrc | 2:823dea76ff2e | 101 | |
ll17lrc | 2:823dea76ff2e | 102 | }; |
ll17lrc | 2:823dea76ff2e | 103 | |
ll17lrc | 2:823dea76ff2e | 104 | #endif |