This is a cube defender game created as a C++ capstone project for Udacity.
In this game, you play as a cube defender that is on the bottom of the screen. The cubes are changing color as they fall down and they are also accelerating as time goes on. You can decelerate them by shooting them down. The goal is to shoot down as many cubes as possible, before one of them reaches the bottom screen(defender platform). For comparison the current result is being captured on the window title.
- Move left: Hold down key A
- Move right: Hold down key D
- Shoot: Press key W
- 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
apt
orapt-get
installation is preferred to building from source.
- SDL2_image >= 2.0
- All installation instruction can be found here
- 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
- Clone this repo.
- Make a build directory in the top level directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run it:
./cube-defender
.
- All Rubric Points
- All Rubric Points
- The project demonstrates an understanding of C++ functions and control structures.
- The project reads data from a file and process the data, or the program writes data to a file.
- 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.
- Derived class functions override virtual base class functions.
- The project makes use of references in function declarations.
- The project uses destructors appropriately.