This program is a basic cannon game that functions primarily through file I/O. You load custom environments through the settings menu, then play on them by pressing play from the main menu. You fire projectiles at the boss to win the level. Some levels contain destructible objects that can be destroyed, but don’t have to be to win the level. Each projectile has a blast radius proportionate to the cost to buy it in the shop. Because of this, even if you hit the ground or a destructible object, you may still damage the boss. When testing this game use the cheat codes Hossein, Graham, powder, and $$$ to gain money power and score(all capitalized as you see here). Try to use the super star of death from the shop for maximum fun.
This is a basic overview of the structure of the class files:
Blue: Class files that are not visually seen
All Classes have comments at the top explaining what exactly they do. Since pnlPlay is the most complex and important, it has a comment explaining every method and sub class.
The third tier of panels (green) aren’t their own files, but are instead defined and created within their parent file
Description of Classes:
Boss: Contains all information for a specific boss such as Image or health
FraSubmitScore: Separate popup window for score submitting
FraWindow: Frame that creates all of the “Main” panels (Play, Help, High Score, Settings)
Main: Simply creates the FraWindow
Mario: Contains all info for mario (X,Y, Image)
Player: Class for managing player high score information
PlotProjectile: Physics engine that models the projectile movements based on wind etc
PnlHelp: Simply displays RTFM (we were to lazy to port our extensive manual over)
PnlHighScores: Manages the high scores (uses the player class)
PnlMainMenu: Panel that contains all the main menu buttons seen in FraWindow (Play, Settings ect)
PnlPlay: Handles the entire Game portion, including creation of the Shop, triggering firing, etc.
PnlPlayButtons: Contains all the buttons, sliders, and some game information, Located to the south in panel play
PnlPlayDrawMovements: Draws all actions that happen within the game. Located in the center of panel play
PnlPlayShop: Shop panel of panel play. Allows buying powder and upgrades
PnlSettings: Allows the user input of user created worlds –DOES NOT handle the information, passes it to panel play
Projectile: Handles all the information for drawing the current projectile (image), and the information such as power
World: Contains all information from a world or .env file. Includes boss(es), Destructable Objects, Backgrounds, wind, mario, etc.
Classes not seen in Graphic:
DestructableObject, a class much like the Boss class, minus a few variables
SoundPlayer, a class of mainly static methods so it you don’t need to create an instance of to use. It plays once or loops sound