ELEC2645 (2018/19) / Mbed 2 deprecated henririgby98

Dependencies:   mbed

Committer:
henririgby98
Date:
Thu May 09 10:09:34 2019 +0000
Revision:
13:5aa4147e2b3e
Parent:
7:e0cab3e73df9
Child:
15:286dde533aba
complete with doxygen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henririgby98 3:2aea0872bb5e 1 #ifndef MISSILES_H
henririgby98 3:2aea0872bb5e 2 #define MISSILES_H
henririgby98 3:2aea0872bb5e 3
henririgby98 3:2aea0872bb5e 4 #include "mbed.h"
henririgby98 3:2aea0872bb5e 5 #include "N5110.h"
henririgby98 3:2aea0872bb5e 6 #include "Gamepad.h"
henririgby98 3:2aea0872bb5e 7
henririgby98 13:5aa4147e2b3e 8 /** Missiles class
henririgby98 13:5aa4147e2b3e 9
henririgby98 13:5aa4147e2b3e 10 @brief Class for Missiles
henririgby98 13:5aa4147e2b3e 11
henririgby98 13:5aa4147e2b3e 12 @version 1.0
henririgby98 13:5aa4147e2b3e 13
henririgby98 13:5aa4147e2b3e 14 @author Henri Rigby
henririgby98 13:5aa4147e2b3e 15
henririgby98 13:5aa4147e2b3e 16 @date May 2019
henririgby98 13:5aa4147e2b3e 17
henririgby98 13:5aa4147e2b3e 18 @code
henririgby98 13:5aa4147e2b3e 19
henririgby98 13:5aa4147e2b3e 20 @endcode
henririgby98 13:5aa4147e2b3e 21 */
henririgby98 13:5aa4147e2b3e 22
henririgby98 3:2aea0872bb5e 23 class Missiles
henririgby98 3:2aea0872bb5e 24 {
henririgby98 3:2aea0872bb5e 25
henririgby98 3:2aea0872bb5e 26 public:
henririgby98 3:2aea0872bb5e 27 Missiles();
henririgby98 3:2aea0872bb5e 28 ~Missiles();
henririgby98 13:5aa4147e2b3e 29 /**
henririgby98 13:5aa4147e2b3e 30 * @brief Randomises missile starting position
henririgby98 13:5aa4147e2b3e 31 * @param sets position @details sets Starting position of the missile
henririgby98 13:5aa4147e2b3e 32 */
henririgby98 7:e0cab3e73df9 33 void init(int size);
henririgby98 13:5aa4147e2b3e 34 /**
henririgby98 13:5aa4147e2b3e 35 * @brief Randomises starting direction & velocity if missile starts at bottom
henririgby98 13:5aa4147e2b3e 36 * @param sets direction & velocity @details Sets starting direction & velocity of missile from bottom
henririgby98 13:5aa4147e2b3e 37 */
henririgby98 7:e0cab3e73df9 38 void south();
henririgby98 13:5aa4147e2b3e 39 /**
henririgby98 13:5aa4147e2b3e 40 * @brief Randomises starting direction & velocity if missile starts at top
henririgby98 13:5aa4147e2b3e 41 * @param sets direction & velocity @details Sets starting direction & velocity of missile from top
henririgby98 13:5aa4147e2b3e 42 */
henririgby98 7:e0cab3e73df9 43 void north();
henririgby98 13:5aa4147e2b3e 44 /**
henririgby98 13:5aa4147e2b3e 45 * @brief Randomises starting direction & velocity if missile starts on left side
henririgby98 13:5aa4147e2b3e 46 * @param sets direction & velocity @details Sets starting direction & velocity of missile from left side
henririgby98 13:5aa4147e2b3e 47 */
henririgby98 7:e0cab3e73df9 48 void west();
henririgby98 13:5aa4147e2b3e 49 /**
henririgby98 13:5aa4147e2b3e 50 * @brief Randomises starting direction & velocity if missile starts on right side
henririgby98 13:5aa4147e2b3e 51 * @param sets direction & velocity @details Sets starting direction & velocity of missile from right side
henririgby98 13:5aa4147e2b3e 52 */
henririgby98 7:e0cab3e73df9 53 void east();
henririgby98 13:5aa4147e2b3e 54 /**
henririgby98 13:5aa4147e2b3e 55 * @brief Draws the missile
henririgby98 13:5aa4147e2b3e 56 * @param draws missile @details draws 2x2 square representing a missile
henririgby98 13:5aa4147e2b3e 57 */
henririgby98 3:2aea0872bb5e 58 void draw(N5110 &lcd);
henririgby98 13:5aa4147e2b3e 59 /**
henririgby98 13:5aa4147e2b3e 60 * @brief Updates the position of the missile
henririgby98 13:5aa4147e2b3e 61 * @param setsposition @details Will reset the position of missile by adding the missiles velocity
henririgby98 13:5aa4147e2b3e 62 */
henririgby98 3:2aea0872bb5e 63 void update();
henririgby98 13:5aa4147e2b3e 64 /**
henririgby98 13:5aa4147e2b3e 65 * @brief Sets the score
henririgby98 13:5aa4147e2b3e 66 * @param the value of the score(int) @details Sets the score of the game back to 0
henririgby98 13:5aa4147e2b3e 67 */
henririgby98 7:e0cab3e73df9 68 int set_score();
henririgby98 13:5aa4147e2b3e 69 /**
henririgby98 13:5aa4147e2b3e 70 * @brief Increases the score
henririgby98 13:5aa4147e2b3e 71 * @param the value of the score @details Increases the value of score by 1
henririgby98 13:5aa4147e2b3e 72 */
henririgby98 7:e0cab3e73df9 73 void add_score();
henririgby98 13:5aa4147e2b3e 74 /**
henririgby98 13:5aa4147e2b3e 75 * @brief Gets the score
henririgby98 13:5aa4147e2b3e 76 * @param return the current score @details Returns the value of what score is currently
henririgby98 13:5aa4147e2b3e 77 */
henririgby98 7:e0cab3e73df9 78 int get_score();
henririgby98 13:5aa4147e2b3e 79 /**
henririgby98 13:5aa4147e2b3e 80 * @brief Sets the velocity
henririgby98 13:5aa4147e2b3e 81 * @param sets velocity componets @details sets the velocity by equalling it to 2D velocity multiplied by direction
henririgby98 13:5aa4147e2b3e 82 */
henririgby98 3:2aea0872bb5e 83 void set_velocity(Vector2D v);
henririgby98 13:5aa4147e2b3e 84 /**
henririgby98 13:5aa4147e2b3e 85 * @brief Gets the velocity
henririgby98 13:5aa4147e2b3e 86 * @param returns 2D velocity @details returns the 2D velocity by taking velocity components of both x and y
henririgby98 13:5aa4147e2b3e 87 */
henririgby98 3:2aea0872bb5e 88 Vector2D get_velocity();
henririgby98 13:5aa4147e2b3e 89 /**
henririgby98 13:5aa4147e2b3e 90 * @brief Gets the position
henririgby98 13:5aa4147e2b3e 91 * @param returns position @details returns the position of both the x and y coordinates
henririgby98 13:5aa4147e2b3e 92 */
henririgby98 3:2aea0872bb5e 93 Vector2D get_pos();
henririgby98 13:5aa4147e2b3e 94 /**
henririgby98 13:5aa4147e2b3e 95 * @brief sets the position
henririgby98 13:5aa4147e2b3e 96 * @param sets position @details sets x and y coordinates by taking their respective values from p
henririgby98 13:5aa4147e2b3e 97 */
henririgby98 3:2aea0872bb5e 98 void set_pos(Vector2D p);
henririgby98 3:2aea0872bb5e 99
henririgby98 3:2aea0872bb5e 100 private:
henririgby98 3:2aea0872bb5e 101
henririgby98 13:5aa4147e2b3e 102 int _x;
henririgby98 13:5aa4147e2b3e 103 int _y;
henririgby98 7:e0cab3e73df9 104 int _score;
henririgby98 7:e0cab3e73df9 105 int _speed;
henririgby98 3:2aea0872bb5e 106 Vector2D _velocity;
henririgby98 3:2aea0872bb5e 107 int _size;
henririgby98 3:2aea0872bb5e 108 };
henririgby98 3:2aea0872bb5e 109 #endif