harry rance
/
Revised_Space_Invaders
Harry Rance 200925395 Embedded Systems Project
UserShip.h
- Committer:
- harryrance
- Date:
- 2017-05-03
- Revision:
- 6:dca8b5e2ebe5
- Parent:
- 3:43970d8d642e
File content as of revision 6:dca8b5e2ebe5:
#ifndef USERSHIP_H #define USERSHIP_H #include "mbed.h" #include "N5110.h" #include "Gamepad.h" /** UserShip Class @brief Library for generating the user ship and it's movement mechanics. @brief Can be used to update the shpi's position on the screen depending on the user input. @brief Can also be used to determine which ship should be drawn if one has been purchase in-game. @author Harry Rance @date 2nd May 2017 */ class UserShip { public: //Constructor UserShip(); //Destructor ~UserShip(); /** Initialise * Initialises the x and y origin of the user ship, along with the y vector component. * @param y - integer value used to control the velocity and position of the ship in the y direction (should be kept constant at 0). * @param x_origin - integer value to determine x origin poisiton (0-83). * @param y_origin - integer value to determine y origin position (0-47). */ void initialise(int y, int x_origin, int y_origin); /** Draw * Calls all of the draw functions in order to draw each ship when required. */ void draw(N5110 &lcd); /* Draw Default/1/2/3/4 Ship * The following 5 functions set the pixels for the 5 different types of ships that can be used. * Default ship is the first ship that can be used. 1, 2, 3 and 4 can be purchased in game using coins. */ void draw_default_ship(N5110 &lcd); void draw_ship_1(N5110 &lcd); void draw_ship_2(N5110 &lcd); void draw_ship_3(N5110 &lcd); void draw_ship_4(N5110 &lcd); /** Update * Updates the ship's x and y position and velocity with regards to the user input on the joystick. * @param d - enum value to denote in which direction the joystick has been moved. * @param mag - float value to determine the magnitude at which the joystick has been moved. * Magnitude determines the speed at which the ship moves. */ void update(Direction d, float mag); /** Get Position * Gets the position of the ship and returns a 2D Vector with x and y members. */ Vector2D get_pos(); /** Set Position * Sets the position for the ship in a 2D Vector with x and y members. * @param p - 2D vector with x and y members of boss position. */ void set_pos(Vector2D p); private: int _x_origin; int _y_origin; int _x; int _y; int _speed; }; #endif