BlastApp
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf200
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\viewkind0
\deftab720
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720
\f0\b\fs36 \cf0 BlastApp\
\b0\fs24 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\pardeftab720
\cf0 BlastApp is a simple, "blast-everything-in-sight" type of game. The goal of the game is to fly your helicopter through twenty levels of deadly enemy bases, mines, and ships.\
\
With 80+ source files, BlastApp looks like a large program; it's actually not. Most of the class files are little classes that implement behavior of the various pieces in the game. There are only a few large or important classes:\
\
\b Game.m
\b0 : Implements the central game logic, drawing, and event handling. A better design would have split the game logic from the view.\
\b RemainingHelicopters.m
\b0 : View that displays the number of helicopters remaining.\
\b AwardView.m
\b0 : View used to print an award certificate upon completion of the game.\
\b BlastAppController.m
\b0 : Central controller for the app; doesn't do much.\
\b InputIndicator.m
\b0 : View that displays the current command being executed.\
\b GamePiece.m
\b0 : Superclass of all game pieces. Manages piece movement, drawing, animation, explosion, collision detection, etc. Some of these behaviors are overridden by the more sophisticated subclasses.\
\b Helicopter.m
\b0 : Subclass of GamePiece; implements helicopter behavior.\
\b AutoPilotHelicopter.m
\b0 : Subclass of Helicopter; implements demo helicopter.\
\b Background.m
\b0 : Subclass of GamePiece; implements the background. The background is read from a file in the app wrapper, or an external file (specified by a default).\
\
There are many subclasses of GamePiece, each responsible for implementing the behavior of a given game piece. The organization of the whole hierarchy isn't as well designed as it could be (as the game grew over time to include many additional types of enemy).\
\
BlastApp has an interesting past; it was originally written in 1990 as a two-bit graphics app on NextStep, then colorized, then mostly automatically converted to Cocoa Java, then converted back to Objective-C, again mostly automatically and as a garbage collected app, and most recently converted to use automatic reference counting. Along the way the game play as well as the look and feel of the game changed very little. \
\
\
\
\
}