Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Thu May 09 09:39:02 2019 +0000
Revision:
97:819c0689efa7
Parent:
83:329da564799a
Added snake food documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 9:d1d79d4ee673 1 #ifndef SNAKEFOOD_H
AhmedPlaymaker 9:d1d79d4ee673 2 #define SNAKEFOOD_H
AhmedPlaymaker 9:d1d79d4ee673 3
AhmedPlaymaker 9:d1d79d4ee673 4 #include "mbed.h"
AhmedPlaymaker 9:d1d79d4ee673 5 #include "N5110.h"
AhmedPlaymaker 9:d1d79d4ee673 6 #include "Gamepad.h"
AhmedPlaymaker 9:d1d79d4ee673 7
AhmedPlaymaker 97:819c0689efa7 8 /** SnakeFood Class
AhmedPlaymaker 97:819c0689efa7 9 @brief This class draws and updates snake food sprites after every collision.
AhmedPlaymaker 97:819c0689efa7 10 @author Ahmed N.Adamjee
AhmedPlaymaker 97:819c0689efa7 11 @date 9th May 2019
AhmedPlaymaker 97:819c0689efa7 12 */
AhmedPlaymaker 9:d1d79d4ee673 13 class SnakeFood
AhmedPlaymaker 9:d1d79d4ee673 14 {
AhmedPlaymaker 97:819c0689efa7 15 public:
AhmedPlaymaker 97:819c0689efa7 16 /** Constructor */
AhmedPlaymaker 9:d1d79d4ee673 17 SnakeFood();
AhmedPlaymaker 97:819c0689efa7 18 /** Destructor */
AhmedPlaymaker 9:d1d79d4ee673 19 ~SnakeFood();
AhmedPlaymaker 97:819c0689efa7 20
AhmedPlaymaker 97:819c0689efa7 21 /**
AhmedPlaymaker 97:819c0689efa7 22 * @brief Initialises the snake food position struct and reset variable and gets pointers of lcd from int main() to be used privately in the entire class.
AhmedPlaymaker 97:819c0689efa7 23 * @param N5110 *lcd @details pointer to the N5110 object in main, address of this pointer is saved to make availability to the entire class, without passing address to each function.
AhmedPlaymaker 9:d1d79d4ee673 24 */
AhmedPlaymaker 83:329da564799a 25 void init(N5110 *lcd);
AhmedPlaymaker 97:819c0689efa7 26
AhmedPlaymaker 97:819c0689efa7 27 /**
AhmedPlaymaker 97:819c0689efa7 28 * @brief This function draws the SnakeFood sprite onto the screen.
AhmedPlaymaker 9:d1d79d4ee673 29 */
AhmedPlaymaker 83:329da564799a 30 void draw();
AhmedPlaymaker 97:819c0689efa7 31
AhmedPlaymaker 97:819c0689efa7 32 /**
AhmedPlaymaker 97:819c0689efa7 33 * @brief This function updates the position of the SnakeFood as it moves down the screen.
AhmedPlaymaker 9:d1d79d4ee673 34 */
AhmedPlaymaker 9:d1d79d4ee673 35 void update();
AhmedPlaymaker 97:819c0689efa7 36
AhmedPlaymaker 97:819c0689efa7 37 /**
AhmedPlaymaker 97:819c0689efa7 38 * @brief This function obtains the coordinates of the top-left pixel in the SnakeFood sprite.
AhmedPlaymaker 97:819c0689efa7 39 * @returns Vector2D snakefoodpos @details This is a struct that returns the x and y position of the origin of the snake food sprite to be read.
AhmedPlaymaker 9:d1d79d4ee673 40 */
AhmedPlaymaker 9:d1d79d4ee673 41 Vector2D get_pos();
AhmedPlaymaker 97:819c0689efa7 42
AhmedPlaymaker 97:819c0689efa7 43 /**
AhmedPlaymaker 97:819c0689efa7 44 * @brief This function is used to change the position of the sprite to specific coordinates when called.
AhmedPlaymaker 97:819c0689efa7 45 * @param Vector2D p @details Stores the values from the struct obtained as the new coordinates of the food.
AhmedPlaymaker 9:d1d79d4ee673 46 */
AhmedPlaymaker 9:d1d79d4ee673 47 void set_pos(Vector2D p);
AhmedPlaymaker 97:819c0689efa7 48
AhmedPlaymaker 97:819c0689efa7 49 Vector2D velocity; //This is a struct that stores the x and y axis velocities of the snakefood.
AhmedPlaymaker 9:d1d79d4ee673 50
AhmedPlaymaker 97:819c0689efa7 51 private:
AhmedPlaymaker 97:819c0689efa7 52 int reset; //reset is used to draw a new set of food.
AhmedPlaymaker 9:d1d79d4ee673 53 int _fx; //food x
AhmedPlaymaker 9:d1d79d4ee673 54 int _fy; //food y
AhmedPlaymaker 83:329da564799a 55
AhmedPlaymaker 83:329da564799a 56 //Pointer to the game pad object pad.
AhmedPlaymaker 83:329da564799a 57 Gamepad *_pad;
AhmedPlaymaker 83:329da564799a 58 //Pointer to the N5110 object lcd.
AhmedPlaymaker 83:329da564799a 59 N5110 *_lcd;
AhmedPlaymaker 9:d1d79d4ee673 60
AhmedPlaymaker 9:d1d79d4ee673 61 };
AhmedPlaymaker 9:d1d79d4ee673 62 #endif