OOP Semester 2 Final Project Dangerous Dave
• Game Explanation: A version of the nostalgic game. Dangerous Dave goes out to seek treasure through secret rooms and tunnels. At each stage, you must collect as many diamonds as you can to accumulate more disqualifications. As well as finding the Holy Grail that will allow the door to be opened to the next stage. At your disposal, some of the stages will be equipped with a Jetpack and a gun to help you deal with all the dangers and enemies.
-
Main.cpp The main file that runs the start of the GameManager, pushes a menu state.
-
Resource Manager The resources class is in charge of loading and holding all outer files, Such as pictures, music’s and fonts. It is a static Singleton class.
-
Logger A singleton static class, the class holds the logger file. The logger file will hold times of major things that happened throughout the program. such as Exceptions, collisions and more. If the program has ever failed, the logger file will allow us to know the reason.
-
Bullet, Enemy, PowerUp factories These classes are each in charge of creating objects. The class holds a static map which holds a key matching to the proper objects and a pointer to a function which creates the object. Each object is in charge of registering itself to the factory.
-
GameManager: The gameManager runs the main game loop. Generically it calls a set of functions for managing the game.
-
Menu: The class represents the main menu of the game. It holds a vector of pointers that inherit from command, start, restart, exit, pause.
-
Animation: The class represents all objects that move by animation.
-
MoveAble: Abstract class which represents the moveable objects.
-
Enemy: Abstract class represents a Enemy object
-
HorizontalEnemy: Inheritance from Enemy
-
CircleEnemy Inheritance from Enemy
-
Bulleta and Dave Inheritance from ChangeMove (for Strategy) and Moveable from top
-
UnMovAble Abstract class inheritance from GameObject represents objects that don’t move
-
Water
-
Enemy
-
Fire
-
Door
-
Wall
-
Electricity
- PowerUp Abstract class that inherits from GameObject.
- Jetpack
- Diamond
- Gun
Design Patterns: 20. ChangeMove Strategy: Abstract class that represents the Dave’s and bullets movements. 21. Factory Templets: For the production of all objects in the game 22. Singelton: For the resources class of the game 23. Command: Abstract class that represents all buttons in games, has an execute function 24. Exit Inherits from command, exits the game…. Help: Inherits from command, opens a help screen Start Game Starting the game Pause To pause the game Restart Restarting the game
• Bugs: Needs to add sfml-audio-d.lib to Properties