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.
GameEngine/GameEngine.h
- Committer:
- evanso
- Date:
- 2020-05-15
- Revision:
- 34:85ccc16f24d2
- Parent:
- 33:7fedd8029473
- Child:
- 36:27aa597db3d2
File content as of revision 34:85ccc16f24d2:
#ifndef GAMEENGINE_H #define GAMEENGINE_H // Included libraries ---------------------------------------------------------- #include "mbed.h" #include "N5110.h" #include "Gamepad.h" #include "Spaceship.h" #include "Map.h" #include "Weapons.h" #include "Alien.h" #include "Explosion.h" #include "People.h" #include <cmath> #include <vector> /** GameEngine class * @brief Runs the different parts of the game * @author Benjamin Evans, University of Leeds * @date April 2020 */ class GameEngine { public: /** Constructor */ GameEngine(); /** Destructor */ ~GameEngine(); /** Initalises GameEngine */ void init(); /** Main gameplay loop that runs playable part of game */ void gameplay_loop(); // Accessors and mutators -------------------------------------------------- private: // Function prototypes ----------------------------------------------------- /** Gets joystick direction from gamepad and stores it in d_ */ void read_joystick_direction(); /** Creats weapons object if button A is pressed and stores in vector */ void create_weapons(); /** Draws each bullet object and deleted object after set movement * distance */ void draw_bullets(); /** Creats alien object and stores in vector*/ void create_alien(); /** Draws each alien object and deletes both objects if collision * detected */ void draw_aliens(); /** Creats bullet object if button A is pressed and stores in vector */ void create_explosion(Vector2D destroyed_position); /** Draws each explosion object if collision detected */ void draw_explosions(); /** Resets the map after spaceship death*/ void reset_map(); /** Spawns aliens in random position of the screen*/ void spawn_aliens(); /** Spawns people in random position at bottom of the screen*/ void create_people(); /** Draws each people object */ void draw_people(); /** Spawns people in random places at bottom of screen*/ void spawn_people(); // Variables --------------------------------------------------------------- /** Define direction d of joystick*/ Direction d_; /** Number of spaceship lives remaining*/ int spaceship_lives; /** Flag for if spaceship is destroyed*/ bool spaceship_destroyed; /** Counter to reset map after set amount of frames*/ int reset_map_counter; /** Counter for how smart bombs left*/ int smart_bomb_counter; /** Counter for spawning aliens*/ double spawn_alien_rate; /** Counter for spawning aliens*/ int spawn_alien_counter; /** Counter for numeber of aliens*/ int alien_number_counter; // Vectors ----------------------------------------------------------------- /** Vector to store each new bullet object*/ std::vector<Weapons> bullet_vector; /** Vector to store each alien bullet object*/ std::vector<Weapons> alien_bullet_vector; /** Vector to store each new alien object*/ std::vector<Alien> alien_vector; /** Vector to store each new eplosion object*/ std::vector<Explosion> explosion_vector; /** Vector to store each new people object*/ std::vector<People> people_vector; // Objects ----------------------------------------------------------------- /** Define Gamepad object*/ Gamepad pad; /** Define LCD object*/ N5110 lcd; /** Define Spaceship object */ Spaceship spaceship; /** Define Map object*/ Map map; /** Define Weapons object*/ Weapons weapons; }; #endif