This is GameView.h in view mode; [Download] [Up]
/* Generated by Interface Builder */ // A generic class used to handle lots of the logic found in a game like // pausing, misc. states, backgrounds, sound on/off flagging, etc. It has // rudimentary key and mouse handling methods; it's up to a subclass to // define them further as is appropriate. #import <appkit/View.h> // super class #define BEZELSIZE 8.0 // width of the bezel border... #define GRANULARITY 0.01 // timer granularity. Screen should be updated #define CYCLES 1 // every 0.05 sec., so here, 2*0.025 = 0.05 #define SPEEDUP 20 // how often to speed up game (every x columns) #define SPEEDUPDELTA 2 // how how long until next speedup #define SPEEDUPFACTOR 0.95 // how much to speed up at a time #define INITCY 8 // initial colCycles = INITCY * CYCLES // directions #define LEFT 3 #define RIGHT 1 #define UP 0 #define DOWN 2 #define NORTHEAST 4 #define NORTHWEST 5 #define SOUTHEAST 6 #define SOUTHWEST 7 // states -- tells autoUpdate what to do; a subclass of this view would add // whatever it needs in the way of new states. #define NORMALSTATE 0 // player's pill dropping #define GAMEOVER 1 // things still blink, etc. #define WAITFORDEMO 600 // Wait x cycles before gameover to start demo // 600 cycles is approx. 30 sec, more or less. @interface GameView:View { id backGround; id preferences; // PreferencesBrain id controller; // Game controller reports level, etc. // of class "GameBrain" id animator; // Animator instance id listenerId; // Grabs Workspace messages for drag and drop. int state; // current state int cycles; // used to blink things, etc. -- counts frames int demoWait; // how many cycles to wait before demo char keys[5]; // keys to play game BOOL paused; // game is paused if == YES BOOL soundEffects; // == YES if sound effects on BOOL music; // == YES if music on BOOL grayBorder; // == YES if gray border is on BOOL doingBorder; // == YES if turning border on/off BOOL demoMode; // way to keep brain for setting // high scores from demo mode BOOL backIsColor; NXColor backColor; char *appPath; // pathname to inside of .app wrapper char *iconPathList; // pathnames of drag/drop files for background } // initialization and start up functions - initFrame:(const NXRect *)frm; // initialize instance - loadPix; // gameBrain calls this from appDidInit - animate:sender; // start animation-call from appDidInit // return info about game state and so on... - (int)gameState; // returns current state - (BOOL)demoMode; // if last game was demo or in demo now - (float)speedTime; // returns current speed - (BOOL)isPaused; // tell caller if we're paused - autoUpdate:sender; // sent by timer - pause:sender; // pause game - unpause:sender; // unpause game - soundOn; // turn on sound effects - soundOff; // turn off sound effects - musicOn; // turn on music - musicOff; // turn off music - getPreferences; // set up preference inst. variables // various view methods; many are overridden from the default NeXTstep // methods... basically, deal with various event types. - (BOOL)acceptsFirstResponder; // to grab keyboard events - updateSelf:(NXRect *)rects :(int)rectCount; //used by internals for speed - (BOOL)acceptsFirstMouse; // let us grab activating mousedowns - mouseDown:(NXEvent *)event; // handle mouseDown events. - keyDown:(NXEvent *)myevent; // handle keyDown events. - setKey:(int)keyIndex val:(char)keyVal; // change key we respond to - setUpScreen; // set up the game screen - changeBorder:(BOOL)borderOn; // move view about in the window & do sizing - restartGame; // reset internal variables to restart level // background handling methods. Set various files, render the background, // resize it, and deal with drag and drop colors. The specific background // stuff comes from BreakApp; the color stuff and any modifications are mine. - setBackgroundFile:(const char *)fileName andRemember:(BOOL)remember; - changeBackground:sender; - revertBackground:sender; - sizeTo:(NXCoord)width :(NXCoord)height; - back1:sender; - back2:sender; - back3:sender; - drawBackground:(NXRect *)rect; - acceptColor:(NXColor)color atPoint:(NXPoint *)aPoint; - writeColor; // Icon dragging methods - registerWindow; - unregisterWindow; - (int)iconEntered:(int)windowNum at:(double)x :(double)y iconWindow:(int)iconWindowNum iconX:(double)iconX iconY:(double)iconY iconWidth:(double)iconWidth iconHeight:(double)iconHeight pathList:(char *)pathList; - (int)iconReleasedAt:(double)x :(double)y ok:(int *)flag; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.