ELEC2645 (2018/19) / Mbed 2 deprecated henririgby98

Dependencies:   mbed

Committer:
henririgby98
Date:
Thu May 09 14:58:01 2019 +0000
Revision:
20:477d2ee5e461
Parent:
17:e749cac05270
finish;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henririgby98 4:d744920089ea 1 #ifndef SPACEREBENGINE_H
henririgby98 4:d744920089ea 2 #define SPACEREBENGINE_H
henririgby98 4:d744920089ea 3
henririgby98 4:d744920089ea 4 #include "mbed.h"
henririgby98 4:d744920089ea 5 #include "N5110.h"
henririgby98 4:d744920089ea 6 #include "Gamepad.h"
henririgby98 5:0da65740cd5e 7 #include "SpaceInvader.h"
henririgby98 4:d744920089ea 8 #include "Missiles.h"
henririgby98 4:d744920089ea 9
henririgby98 17:e749cac05270 10 /** SpaceRebEngine class
henririgby98 17:e749cac05270 11
henririgby98 17:e749cac05270 12 @brief Class for Space Rebellion Engine
henririgby98 17:e749cac05270 13
henririgby98 17:e749cac05270 14 @version 1.0
henririgby98 17:e749cac05270 15
henririgby98 17:e749cac05270 16 @author Henri Rigby
henririgby98 17:e749cac05270 17
henririgby98 17:e749cac05270 18 @date May 2019
henririgby98 17:e749cac05270 19
henririgby98 17:e749cac05270 20 */
henririgby98 4:d744920089ea 21
henririgby98 4:d744920089ea 22 class SpaceRebEngine
henririgby98 4:d744920089ea 23 {
henririgby98 4:d744920089ea 24
henririgby98 4:d744920089ea 25 public:
henririgby98 20:477d2ee5e461 26 /**constructor*/
henririgby98 4:d744920089ea 27 SpaceRebEngine();
henririgby98 20:477d2ee5e461 28 /**destructor*/
henririgby98 4:d744920089ea 29 ~SpaceRebEngine();
henririgby98 17:e749cac05270 30 /**
henririgby98 17:e749cac05270 31 * @brief Initialises spaceinvader and missiles
henririgby98 17:e749cac05270 32 * @param sets spaceinvader @details Sets height and width of the spaceinvader private variables
henririgby98 17:e749cac05270 33 * @param sets missiles @details Sets size and speed of the missiles private variables
henririgby98 17:e749cac05270 34 */
henririgby98 4:d744920089ea 35 void init(int spaceinvader_width,int spaceinvader_height,int missiles_size,int speed);
henririgby98 17:e749cac05270 36 /**
henririgby98 17:e749cac05270 37 * @brief Sets joystick values
henririgby98 17:e749cac05270 38 * @param sets the joystick values @details Sets direction and magnitude of the joystick private variables
henririgby98 17:e749cac05270 39 */
henririgby98 4:d744920089ea 40 void read_input(Gamepad &pad);
henririgby98 17:e749cac05270 41 /**
henririgby98 17:e749cac05270 42 * @brief Updates joystick and missiles values
henririgby98 17:e749cac05270 43 * @param sets the joystick values @details Sets direction and magnitude of the joystick private variables
henririgby98 17:e749cac05270 44 * @param sets missiles @details Sets size and speed of the missiles private variables
henririgby98 17:e749cac05270 45 */
henririgby98 4:d744920089ea 46 void update(Gamepad &pad);
henririgby98 17:e749cac05270 47 /**
henririgby98 17:e749cac05270 48 * @brief Draws game
henririgby98 17:e749cac05270 49 * @return draw game components @details Draws spaceinvader, missiles & play area
henririgby98 17:e749cac05270 50 */
henririgby98 4:d744920089ea 51 void draw(N5110 &lcd);
henririgby98 17:e749cac05270 52 /**
henririgby98 17:e749cac05270 53 * @brief Sets score and prints score
henririgby98 17:e749cac05270 54 * @param sets the score value @details Sets the value of _score private variable
henririgby98 17:e749cac05270 55 * @return prints value of score @details Prints the score on the lcd display
henririgby98 17:e749cac05270 56 */
henririgby98 7:e0cab3e73df9 57 void print_scores(N5110 &lcd);
henririgby98 17:e749cac05270 58 /**
henririgby98 17:e749cac05270 59 * @brief Sets value of _end
henririgby98 17:e749cac05270 60 * @param value of _end @details Returns the boolean value of _end
henririgby98 17:e749cac05270 61 */
henririgby98 17:e749cac05270 62 void check_spaceinvader_collision(Gamepad &pad);
henririgby98 17:e749cac05270 63 /**
henririgby98 17:e749cac05270 64 * @brief Sets missiles velocity
henririgby98 17:e749cac05270 65 * @param sets velocity values of missiles @details Sets the values for velocity.x & velocity.y of missiles
henririgby98 17:e749cac05270 66 */
henririgby98 17:e749cac05270 67 void check_wall_collision(Gamepad &pad);
henririgby98 17:e749cac05270 68 /**
henririgby98 17:e749cac05270 69 * @brief Gets value of end
henririgby98 17:e749cac05270 70 * @return value of end @details Returns the boolean value of end
henririgby98 17:e749cac05270 71 */
henririgby98 7:e0cab3e73df9 72 bool game_end();
henririgby98 4:d744920089ea 73
henririgby98 4:d744920089ea 74 private:
henririgby98 4:d744920089ea 75
henririgby98 4:d744920089ea 76 SpaceInvader _player;
henririgby98 4:d744920089ea 77
henririgby98 4:d744920089ea 78 int _spaceinvader_width;
henririgby98 4:d744920089ea 79 int _spaceinvader_height;
henririgby98 4:d744920089ea 80 int _missiles_size;
henririgby98 4:d744920089ea 81 int _speed;
henririgby98 7:e0cab3e73df9 82 int _score;
henririgby98 7:e0cab3e73df9 83
henririgby98 7:e0cab3e73df9 84 bool _end;
henririgby98 4:d744920089ea 85
henririgby98 4:d744920089ea 86 Missiles _missiles;
henririgby98 4:d744920089ea 87
henririgby98 4:d744920089ea 88 Direction _d;
henririgby98 4:d744920089ea 89 float _mag;
henririgby98 4:d744920089ea 90
henririgby98 4:d744920089ea 91 };
henririgby98 4:d744920089ea 92
henririgby98 4:d744920089ea 93 #endif