The project is 2D arcade shooting using C++ SDL.
- Dependencies for Running Locally
- Basic Build Instructions
- How to play
- Processing loop
- Object Hierarchy
- Rubric Points
- cmake >= 3.7
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- SDL2 >= 2.0
- All installation instructions can be found here
Note that for Linux, an
aptorapt-getinstallation is preferred to building from source. - gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- SDL2_ttf >= 2.0
- All installation instructions can be found here
sudo apt-get install libsdl2-ttf-dev
- Clone this repo.
- Make a build directory in the top level directory:
mkdir build && cd build - Compile:
cmake .. && make - Run it:
./ShootingGame.
| Key | Action |
|---|---|
| Up | Move to Upside |
| Down | Move to Downside |
| Left | Move to Leftside |
| Right | Move to Right side |
| A | Use Normal Weapon |
| ESC | Exit Game |
Below are the rubric points that are addressed/implemented in this project.
- The project demonstrates an understanding of C++ functions and control structures
- The project accepts user input and processes the input
- The project uses Object Oriented Programming techniques.
- Classes use appropriate access specifiers for class members.
- Class constructors utilize member initialization lists.
- Classes abstract implementation details from their interfaces.
- Classes encapsulate behavior.
- Classes follow an appropriate inheritance hierarchy.
- Overloaded functions allow the same function to operate on different parameters.
- Derived class functions override virtual base class functions.
- The project uses destructors appropriately.
- The project uses smart pointers instead of raw pointers.
- The project uses multithreading.
- A mutex or lock is used in the project.


