Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Weapons/Weapons.h
- Committer:
- evanso
- Date:
- 2020-05-13
- Revision:
- 28:a5958497d5ce
- Parent:
- 27:8bb2bd97c319
- Child:
- 31:6015e8ed859c
File content as of revision 28:a5958497d5ce:
#ifndef WEAPONS_H
#define WEAPONS_H
// Included libraries ----------------------------------------------------------
#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "RandomMovement.h"
/** Weapons class
* @brief Draws and moves weapons
* @author Benjamin Evans, University of Leeds
* @date April 2020
*/
class Weapons: private RandomMovement {
public:
/** Constructor */
Weapons();
/** Destructor */
~Weapons();
/** Initalises Weapons
* @param sprite_pos @details vector 2D of sprite xy position
* @param sprite_direction @details sprite direction bool,
* true = E, false = W
* @param bullet_type @details true = spaceship, false = alien
*/
void init(Vector2D sprite_pos, bool sprite_direction,bool bullet_type);
/** Draws the bullet and moves it in x direction each frame
* @param lcd @details N5110 object
*/
void draw_bullet(N5110 &lcd);
/** Draws the aliens bullet and moves it in xy direction each frame
* @param lcd @details N5110 object
* @param d_ @details : Direction object of joystick
*/
void draw_alien_bullet(N5110 &lcd, Direction d_);
// Accessors and mutators --------------------------------------------------
/** Gets the xy position of the bullet
* @return position_x_bullet_
* @return position_x_bullet_
*/
Vector2D get_pos_one();
/** sets the xy position of the bullet
* @param pos @details vector 2D of bullet xy position
*/
void set_pos_one(Vector2D pos);
/** Gets the 2nd xy position of the bullet for colition detection
* @return position_x_bullet_ + 1
* @return position_x_bullet_
*/
Vector2D get_pos_two();
/** Gets the bullet distance counter
* @return bullet_distance_counter
*/
int get_bullet_delete_counter();
/** Gets the bullet direction
* @return bullet_direction_
*/
bool get_direction();
/** Sets the bullets movment direction when it is fired
* @param spaceship_sprite_direction_ @details sprite direction bool,
* true = E, false = W
*/
void set_direction(bool sprite_direction_);
private:
// Function prototypes -----------------------------------------------------
/** Calculates bullets start postion
* @param spaceship_pos @details x and y postion of spaceship
* @param spaceship_sprite_direction_ @details sprite direction bool,
* true = E, false = W
*/
void calc_bullets_start_pos(Vector2D spaceship_pos,
bool spaceship_sprite_direction_);
/** Calculates allien bullets start postion
* @param alien_pos @details x and y postion of spaceship
* @param alien_sprite_direction_ @details sprite direction bool,
* true = E, false = W
*/
void calc_alien_bullets_start_pos(Vector2D alien_pos,
bool alien_sprite_direction_);
/** Calulates the bullet movement depeding on spaceship positions and
* joystick input
* @param d_ @details : Direction object of joystick
* @retrun integer @details move bullet value for bullet draw function
*/
int calc_bullet_movement(Direction d_);
// Variables ---------------------------------------------------------------
/** Counter to deleted bullet */
int bullet_delete_counter_;
};
#endif