Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Wed May 13 12:02:51 2020 +0000
Revision:
26:1a7056eb3253
Parent:
25:70b55f5bfc87
Child:
27:8bb2bd97c319
Added unit test for explosion class which it passed!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evanso 25:70b55f5bfc87 1 #ifndef EXPLOSION_H
evanso 25:70b55f5bfc87 2 #define EXPLOSION_H
evanso 25:70b55f5bfc87 3
evanso 25:70b55f5bfc87 4 // Included libraries -----------------------------------------------------------
evanso 25:70b55f5bfc87 5 #include "mbed.h"
evanso 25:70b55f5bfc87 6 #include "N5110.h"
evanso 25:70b55f5bfc87 7 #include "Gamepad.h"
evanso 25:70b55f5bfc87 8 #include <vector>
evanso 25:70b55f5bfc87 9
evanso 25:70b55f5bfc87 10 /** Explosion class
evanso 25:70b55f5bfc87 11 @brief Draws explosion animation
evanso 25:70b55f5bfc87 12 @author Benjamin Evans, University of Leeds
evanso 25:70b55f5bfc87 13 @date May 2020
evanso 25:70b55f5bfc87 14 */
evanso 25:70b55f5bfc87 15
evanso 26:1a7056eb3253 16 // struct to draw explosion animation
evanso 25:70b55f5bfc87 17 struct Animation{
evanso 25:70b55f5bfc87 18 bool draw_circle_one;
evanso 25:70b55f5bfc87 19 bool draw_circle_two;
evanso 25:70b55f5bfc87 20 FillType circle_one;
evanso 25:70b55f5bfc87 21 FillType circle_two;
evanso 25:70b55f5bfc87 22 };
evanso 25:70b55f5bfc87 23
evanso 25:70b55f5bfc87 24
evanso 25:70b55f5bfc87 25 class Explosion {
evanso 25:70b55f5bfc87 26 public:
evanso 25:70b55f5bfc87 27 /** Constructor */
evanso 25:70b55f5bfc87 28 Explosion();
evanso 25:70b55f5bfc87 29
evanso 25:70b55f5bfc87 30 /** Destructor */
evanso 25:70b55f5bfc87 31 ~Explosion();
evanso 25:70b55f5bfc87 32
evanso 25:70b55f5bfc87 33 /** Initalises explosion */
evanso 25:70b55f5bfc87 34 void init();
evanso 25:70b55f5bfc87 35
evanso 25:70b55f5bfc87 36 /** Draws the explosion
evanso 25:70b55f5bfc87 37 * @param lcd @details : N5110 object
evanso 25:70b55f5bfc87 38 */
evanso 25:70b55f5bfc87 39 void draw_explosion(N5110 &lcd);
evanso 25:70b55f5bfc87 40
evanso 25:70b55f5bfc87 41 // Accessors and mutators --------------------------------------------------
evanso 25:70b55f5bfc87 42
evanso 25:70b55f5bfc87 43 /** Set position of the explosion
evanso 25:70b55f5bfc87 44 * @param destroyed_position @details : xy position of object that was detroyed
evanso 25:70b55f5bfc87 45 */
evanso 25:70b55f5bfc87 46 void set_explosion_posistion(Vector2D destroyed_position);
evanso 25:70b55f5bfc87 47
evanso 25:70b55f5bfc87 48 /** Gets the explosion radius
evanso 25:70b55f5bfc87 49 * @returns explosion_radius_
evanso 25:70b55f5bfc87 50 */
evanso 25:70b55f5bfc87 51 int get_explosion_radius();
evanso 25:70b55f5bfc87 52
evanso 25:70b55f5bfc87 53 private:
evanso 25:70b55f5bfc87 54
evanso 25:70b55f5bfc87 55 // Varibles ----------------------------------------------------------------
evanso 25:70b55f5bfc87 56
evanso 25:70b55f5bfc87 57 //Explosion x position on lcd
evanso 25:70b55f5bfc87 58 int position_x_explosion_;
evanso 25:70b55f5bfc87 59
evanso 25:70b55f5bfc87 60 // Explosion y position on lcd
evanso 25:70b55f5bfc87 61 int position_y_explosion_;
evanso 25:70b55f5bfc87 62
evanso 25:70b55f5bfc87 63 // Explosion circle radius
evanso 25:70b55f5bfc87 64 int explosion_radius_;
evanso 25:70b55f5bfc87 65
evanso 25:70b55f5bfc87 66 // FSM counter
evanso 25:70b55f5bfc87 67 int fsm_counter_;
evanso 25:70b55f5bfc87 68
evanso 25:70b55f5bfc87 69 // Draw cunter
evanso 25:70b55f5bfc87 70 int draw_counter;
evanso 25:70b55f5bfc87 71 };
evanso 25:70b55f5bfc87 72
evanso 25:70b55f5bfc87 73 #endif