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
Spikes/Spikes.h@20:6db651a3cfec, 2020-05-22 (annotated)
- 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?
| User | Revision | Line number | New 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 |