1) Replace Vector2 and Coordinate
- a) Create a new Vec2 class as a replacement for both Vector2 and Coordinate. Vec2 must be a templated class, so that it stores and manipulates X and Y values of a templated type. It may be helpful to start with the Vector2 class, add template<typename TYPE> to the header, and replace (Ctrl+H) each instance of float with TYPE, and Vector2 with Vec2.
- b) Remember, a templated class must have all method definitions in the same file as the templated class declaration. Also remember that method definitions outside of a templated class declaration need a template<typename TYPE> header, and a <TYPE> appended to the class name with the scope resolution operator (e.g.: void Vec2<TYPE>::limitMagnitude(TYPE max) {/* method body */}).
- c) Replace the use of Vector2 with Vec2<float>.
- d) Replace the use of Coordinate with Vec2<int>.
2) More Game Goals
- a) Instead of having a single goal for the player, create at least 3 randomly placed goals for the player. Use a std::vector<Entity> object (from the Standard Template Library) named goals to store the goals.
- c) Whenever the user clicks in the game window, the game should create another goal object for the player to get, and add it to the std::vector<Entity> goals object.
- d) Each retrieved goal should be removed from the game after being retrieved by the player. A You Win! message should display when the player retrieves all goals.
[Autonomous Agent] The player controlled Entity can move to collect each goal without any user input!
[Hes Coming, RUN!] Create a MovingTarget class that extends Entity, and use that for the game goals. Each MovingTarget should wander randomly and slowly, running away from the player if the player comes withing a certain radius. Be sure to prevent goal entities from escaping the game boundaries!
[Ill Make My Own List] Create your own templated list type and use it instead of the std::vector class.
[Blocked!] Implement collision detection, so that Entity objects cant occupy the same area.
[Weve Had Enough!] Create a Hunter class that extends Entity, and slowly follows the players Entity, ending the game in defeat if the player should be caught by a Hunter.
[Lets Fight!] Create a Projectile class that acts as a projectile attack for the players Entity. Keep track of all projectiles in the game with a vector<Projectile> object. If there are Hunters in the game, give Hunters a projectile attack as well! Dont forget to remove projectiles from the game once they hit something or leave the game boundaries!
Reviews
There are no reviews yet.