harry rance
/
Revised_Space_Invaders
Harry Rance 200925395 Embedded Systems Project
Diff: Bullet.h
- Revision:
- 6:dca8b5e2ebe5
- Parent:
- 3:43970d8d642e
--- a/Bullet.h Tue May 02 18:47:22 2017 +0000 +++ b/Bullet.h Wed May 03 16:24:01 2017 +0000 @@ -6,29 +6,111 @@ #include "Gamepad.h" #include "UserShip.h" +/** Bullet Class +@brief Library for generating the bullet and bullet movement. +@brief Can draw the bullet and generate movement using 2D Vectors. +@brief Can also detect user input to identify when the bullet is fired or inactive. + +@author Harry Rance +@date 2nd May 2017 + +*/ + class Bullet { public: + + //Constructor Bullet(); + + //Destructor ~Bullet(); + + /** Initialise + * Initialises the bullet with its x and y origin, speed and also the current user score and coins amount. + * @param x_origin - sets the x origin (0-83) for the bullet. + * @param y_origin - sets the y origin (0-47) for the bullet. + * @param speed - sets the original speed for the bullet to move at + * @param button_check - initialises the _button_check varaible to 0 to say that the button has not initially been pressed. + * @param coins - sets the amount of original coins to start with to the set value. + * @param score - sets the starting score to the defined value. + */ void initialise(int x_origin, int y_origin, int speed, int button_check, int coins, int score); + + /** Draw + * Draws the bullet on the LCD screen with regards to it's movement parameters. + */ void draw(N5110 &lcd); + + /** Update + * Updates the movement and game mechanics parameters for the bullet. + */ void update(); + + /** Check Button Press + * Used to check if the button has been pressed, and change variables if this is true. + */ void check_button_press(Gamepad &pad); + /** Set Velocity + * Sets the velocity of the bullet with x and y members. + * @param v - contains the x and y values in a 2D vector of the velocity. + */ void set_velocity(Vector2D v); + + /** Set Position + * Sets the position of the bullet with x and y members. + * @param p - contains the x and y values in a 2D vector of the velocity. + */ void set_position(Vector2D p); + + /** Add Score + * Function to add an integer value onto the score variable each time the boss/alien is hit. + */ void add_score(); + + /** Add Coins + * Function to add an integer value onto the coins variable each time the boss/alien is hit. + */ void add_coins(); + + /** Gets velocity of the bullet. + * returns a struct with x and y members, in the range of 0.0-1.0. + */ Vector2D get_velocity(); + + /** Gets position of the bullet. + * returns a struct with x and y members, with x in the range of 0-83 and y in the range of 0-47. + */ Vector2D get_position(); + + /** Get Score + * Returns an integer value for the current score. + */ int get_score(); + + /** Get Coins + * Returns an integer value for the current coins. + */ int get_coins(); + + //Public integer variable for the y position of the bullet. Used in GameEngine. int _y; + + //Public variable for the speed of the bullet. Used in GameEngine. int _speed; + + //Public variable to check if the button is pressed or not. Used in GameEngine. int _button_check; + + //Decrements the amount of user coins displayed when a life is purchased. void dec_coins_for_life(); + + /** The following 4 functions are for purchasing one of the four available ships in game. + * They decrement the amount of displayed coins by a different amount depending on which button, X, Y, B or R has been pressed. + * Each button corresponds to a different ship, all of different costs ranging from 50 coins to 200 coins. + */ void dec_coins_for_x(); void dec_coins_for_y(); void dec_coins_for_b();