ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_ll17lrc_v2

Dependencies:   mbed

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?

UserRevisionLine numberNew 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