You can click here to see the first version of it in Ruby programming language (it was really a mess).
- GameObject: the parent class of all the game objects (abstract class).
- Player, Line, Obstacle, Coin: the implementation for the specific game objects.
- LineManager, ObstacleManager, CoinManager: the code responsible for managing generation and movement of game objects automatically (except Player).
- GameScreen: the parent class of all the game screens (abstract class).
- IngameScreen: the parent class of Pause and GameOver screen.
- GameOver, Instruction, Pause, Settings, Shop, Start: the implementation for the specific game screen.
- ISkill: the interface of skills.
- Skill: the common implementation for the skills (duration, cooldown, draw).
- /configuration/GameConfiguration: The file contains game’s properties (Speed and Collision).
- /skill/SkillArgument: The argument for skills (i.e. Speed for Time stop and Slowdown).
- S_Invicible, S_Slowdown, S_Timestop: the specific implementation for each skill’s ability.
- SkillManager: the logic to use, save and load the skills (this one exists because my architecture was bad).
- ScoreHandler: manages the scoring system of the game.
- AudioHandler: manages the audio-related functionality of the game.
- Game: Where the game loop and loading resource reside.
- Use arrow keys for move
- Avoid obstacles
- Collect coins
- Buy skills (press 1, 2, or 3 to use the according skills).
- Clone the repository.
- Put the directories in /resource to bin/Debug/YOUR-BUILD-FOLDER.
- Use Visual Studio to build and run the game.
- Art: Cars by TMD Studios. As asked, also check out their website
- Music: Tchaikovsky - The Nutcracker Suite 'March' REMIX by TPRMX
