ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18jgb

Dependencies:   mbed

Committer:
el18jgb
Date:
Fri May 22 14:06:35 2020 +0000
Revision:
20:6db651a3cfec
Parent:
19:33c77517cb88
sounds and some better documentation;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18jgb 9:2836fc3d9ede 1 #ifndef SPIKES_H
el18jgb 9:2836fc3d9ede 2 #define SPIKES_H
el18jgb 9:2836fc3d9ede 3
el18jgb 9:2836fc3d9ede 4 #include "mbed.h"
el18jgb 9:2836fc3d9ede 5 #include "N5110.h"
el18jgb 9:2836fc3d9ede 6 #include "Gamepad.h"
el18jgb 9:2836fc3d9ede 7 #include "Aim.h"
el18jgb 9:2836fc3d9ede 8 #include "Heston.h"
el18jgb 9:2836fc3d9ede 9
el18jgb 20:6db651a3cfec 10 /** Spikes class
el18jgb 20:6db651a3cfec 11 * @brief falling sprites to be avoided
el18jgb 20:6db651a3cfec 12 * @author Joe Body, University of Leeds
el18jgb 20:6db651a3cfec 13 * @date May 2020
el18jgb 20:6db651a3cfec 14 */
el18jgb 9:2836fc3d9ede 15
el18jgb 9:2836fc3d9ede 16 class Spikes
el18jgb 9:2836fc3d9ede 17 {
el18jgb 9:2836fc3d9ede 18
el18jgb 9:2836fc3d9ede 19 public:
el18jgb 20:6db651a3cfec 20
el18jgb 20:6db651a3cfec 21 /** Constructor */
el18jgb 9:2836fc3d9ede 22 Spikes();
el18jgb 20:6db651a3cfec 23
el18jgb 20:6db651a3cfec 24 /** Destructor */
el18jgb 9:2836fc3d9ede 25 ~Spikes();
el18jgb 20:6db651a3cfec 26
el18jgb 20:6db651a3cfec 27 /** Initalises Spikes*/
el18jgb 9:2836fc3d9ede 28 void init();
el18jgb 20:6db651a3cfec 29
el18jgb 20:6db651a3cfec 30 /** Draws the first type of spike
el18jgb 20:6db651a3cfec 31 * @param lcd @details N5110 object
el18jgb 20:6db651a3cfec 32 */
el18jgb 9:2836fc3d9ede 33 void draw(N5110 &lcd);
el18jgb 20:6db651a3cfec 34
el18jgb 20:6db651a3cfec 35 /** Draws the second type of spike
el18jgb 20:6db651a3cfec 36 * @param lcd @details N5110 object
el18jgb 20:6db651a3cfec 37 */
el18jgb 18:c600a6545e81 38 void draw2(N5110 &lcd);
el18jgb 20:6db651a3cfec 39
el18jgb 20:6db651a3cfec 40 /** Draws the third type of spike
el18jgb 20:6db651a3cfec 41 * @param lcd @details N5110 object
el18jgb 20:6db651a3cfec 42 */
el18jgb 18:c600a6545e81 43 void draw3(N5110 &lcd);
el18jgb 20:6db651a3cfec 44
el18jgb 20:6db651a3cfec 45 /** update the y direction */
el18jgb 17:18ae81180853 46 void updatey();
el18jgb 20:6db651a3cfec 47
el18jgb 20:6db651a3cfec 48 /** update the x direction */
el18jgb 17:18ae81180853 49 void updatex();
el18jgb 20:6db651a3cfec 50
el18jgb 20:6db651a3cfec 51 /** update the x direction negatively*/
el18jgb 18:c600a6545e81 52 void updatexn();
el18jgb 20:6db651a3cfec 53
el18jgb 20:6db651a3cfec 54 /** set initial random position of a spike
el18jgb 20:6db651a3cfec 55 * @param int x @ details 1-4 determines general section of screen
el18jgb 20:6db651a3cfec 56 */
el18jgb 9:2836fc3d9ede 57 void position(int x);
el18jgb 20:6db651a3cfec 58
el18jgb 20:6db651a3cfec 59 /** set co ordinates of sprite
el18jgb 20:6db651a3cfec 60 * @param int x
el18jgb 20:6db651a3cfec 61 * @param int y
el18jgb 20:6db651a3cfec 62 */
el18jgb 19:33c77517cb88 63 void set_pos(int x, int y);
el18jgb 20:6db651a3cfec 64
el18jgb 20:6db651a3cfec 65 /** gets co-ordinates of the sprite
el18jgb 20:6db651a3cfec 66 * @ return position vector
el18jgb 20:6db651a3cfec 67 */
el18jgb 9:2836fc3d9ede 68 Vector2D get_pos();
el18jgb 20:6db651a3cfec 69
el18jgb 20:6db651a3cfec 70 /** set co ordinates of sprite
el18jgb 20:6db651a3cfec 71 * @param pad @detail Gampad object
el18jgb 20:6db651a3cfec 72 */
el18jgb 10:6c574b8524df 73 void hit(Gamepad &pad);
el18jgb 9:2836fc3d9ede 74
el18jgb 9:2836fc3d9ede 75 private:
el18jgb 20:6db651a3cfec 76
el18jgb 20:6db651a3cfec 77 /**vertical size sprite
el18jgb 20:6db651a3cfec 78 * @return _height
el18jgb 20:6db651a3cfec 79 */
el18jgb 9:2836fc3d9ede 80 int _height;
el18jgb 20:6db651a3cfec 81
el18jgb 20:6db651a3cfec 82 /**horizontal size sprite
el18jgb 20:6db651a3cfec 83 * @return _height
el18jgb 20:6db651a3cfec 84 */
el18jgb 9:2836fc3d9ede 85 int _width;
el18jgb 20:6db651a3cfec 86
el18jgb 20:6db651a3cfec 87 /** x position of sprite
el18jgb 20:6db651a3cfec 88 * @return _x
el18jgb 20:6db651a3cfec 89 */
el18jgb 9:2836fc3d9ede 90 int _x;
el18jgb 20:6db651a3cfec 91
el18jgb 20:6db651a3cfec 92 /** y position of sprite
el18jgb 20:6db651a3cfec 93 * @return _y
el18jgb 20:6db651a3cfec 94 */
el18jgb 9:2836fc3d9ede 95 int _y;
el18jgb 20:6db651a3cfec 96
el18jgb 20:6db651a3cfec 97 /** speed of sprite
el18jgb 20:6db651a3cfec 98 * @return _speed
el18jgb 20:6db651a3cfec 99 */
el18jgb 9:2836fc3d9ede 100 int _speed;
el18jgb 9:2836fc3d9ede 101
el18jgb 9:2836fc3d9ede 102 };
el18jgb 9:2836fc3d9ede 103
el18jgb 9:2836fc3d9ede 104
el18jgb 9:2836fc3d9ede 105 #endif