ELEC2645 (2018/19) / Mbed 2 deprecated el17ebs

Dependencies:   mbed FATFileSystem

Revision:
14:08ac9aaa34c3
Parent:
12:7f7fadb5c106
Child:
16:c8d68cbd1ae2
--- a/Ball/Ball.h	Mon May 06 10:00:57 2019 +0000
+++ b/Ball/Ball.h	Wed May 08 14:54:19 2019 +0000
@@ -48,7 +48,7 @@
 };
 
 /** Ball Class
-* @brief Class for controlling the golf ball
+* @brief Class for controlling a golf ball
 * @author Ellis Blackford Stroud
 * @date May, 2018
 */
@@ -64,62 +64,95 @@
     /** Destructor */
     ~Ball();
     
+    /** Resets ball private variables for new level
+    * @param a structing storing the start coordinate of the ball 
+    */    
     void init(Coord start_pos);
     
+    /** Draws ball in position
+    * @param the class used to interact with the lcd display
+    */ 
     void drawBall(N5110 &lcd);
-    
+        
+    /** Prints shot count 
+    * @param the class used to interact with the lcd display
+    */ 
     void printShotCount(N5110 &lcd);
     
+    /** Draws power bar
+    * @param the class used to interact with the lcd display
+    * @param a float in the range 0.0 - 1.0
+    */ 
     void drawPower(N5110 &lcd, float mag);
     
+    /** Draws aim on ball
+    * @param the class used to interact with the lcd periphal 
+    * @param x and y floats of joystick coordinate in the range -1.0 - 1.0 
+    */ 
     void drawAim(N5110 &lcd, Vector2D joy_coord ,float angle);
-           
+    
+    /** Moves ball position */   
     void move_ball();
-        
-    void shoot_ball(Gamepad &pad, Vector2D joy_coord);
-            
+    
+    /** Checks if ball is shot and if so changes ball velocity to direction and magnitude of joystick
+    *   @param the class used to interact with the gamepad 
+    *   @param a struct storing mapped coordinates of the joystick position
+    */
+    void check_shoot_ball(Gamepad &pad, Vector2D joy_coord);
+           
+    /** Sets total shout count
+    *   @param an integer storing the total shot count
+    */ 
     void set_total_shot_count(int total_shot_count);
     
+    /** Gets total shout count
+    *   @return the total shot count
+    */ 
     int get_total_shot_count();
         
+    /** Checks if ball is in hole
+    *   @return true if ball is in the hole and false if not
+    */ 
     bool check_hole(Coord hole);
     
+    /** Checks if ball has met any bounce conditions
+    *   @param array of WallMap struct values storing wall types and coordinates
+    *   @param integer used to control loop which runs bounce check
+    */ 
     void check_wall_bounce(WallMap map[], int size);
     
+    /** Sets frame rate
+    *   @param frequency of frame rate in Hz
+    */ 
     void set_frame_rate(int frame_rate);
+    
+    /** Gets bounce flag state
+    *   @return true for bounce false for none
+    */ 
+    bool get_bounce_flag();
+    
+    /** Reset bounce flag state */ 
+    void reset_bounce_flag();
 
 private:
     
     void left_bounce(Coord start, Coord end);
-    
     void right_bounce(Coord start, Coord end);
-    
     void top_bounce(Coord start, Coord end);
-    
     void bottom_bounce(Coord start, Coord end);
-    
     void bottom_left_bounce(Coord start, Coord end);
-    
     void bottom_right_bounce(Coord start, Coord end);
-       
     void top_left_bounce(Coord start, Coord end);
-    
     void top_right_bounce(Coord start, Coord end);
     
     float _x_pos; 
-    
     float _y_pos;
-    
     float _x_vel;
-    
     float _y_vel;
-    
+    bool _bounce_flag;
     int _shot_count;
-    
     int _total_shot_count;
-    
     int _frame_rate;
-    
     Direction _direction;
     
 };