home *** CD-ROM | disk | FTP | other *** search
-
- // PlayerUpView is used to track one-ups. (i.e. the number of extra
- // "men" left.) It handles displaying them on the screen, too; use
- // is fairly obvious:
- // 1. Initialize: -initFrame, -setImage:, -setImageFrame:
- // -setMargin: (optional method, default is 2.0)
- // 2. Reset at start of game play with -setNumUp:
- // 3. When an extra "man" is needed, call -decNumUp: If it
- // returns YES, then you got one. If it returns NO
- // then there are no more left and the game is over.
- // 4. If the player is to be awarded a bonus "extra man"
- // then call -incNumUp: to add one extra "man".
- // If you set up an appropriate BonusTacker (or subclass),
- // send it to the PlayerUpView, and then make the
- // PlayerUpView one of the delegates to the ScoreKeeper,
- // then it will automatically give extra one-ups at the
- // right times.
- // 5. If you need to know how many are left, then use
- // the -numUp method to find out. (If you need to
- // inc by more than one, for example, use a combo
- // like: [playerUpView setNumUp:([playerUpView numUp] + x)];
- // 6. Set the delegate outlet if you want notification of bonus
- // men, added/subtracted men, and so on. (Trigger sounds
- // and music off the notification, etc.)
- // Note that the NeXT archiving works via -read: and -write: so that
- // this object can be on a palette.
-
- #import <appkit/appkit.h>
-
- @interface PlayerUpView:View
- {
- id image; // an NXImage of the one up
- id delegate; // any object...
- id extraManBonusTracker; // a BonusTracker...when to give xtra men
- int numUp; // how many chances the player has left
- NXCoord margin; // amount of white space to leave when rendering
- NXRect imageFrame; // where the one up image is located in "image"
- }
-
- // before using this object, you should use the following methods, in
- // this order, to set things up.
- - initFrame:(const NXRect *)frm; // for initting a view
- - setImage:anImage; // bitmap image of a oneUp
- - setMargin:(NXCoord)newMargin; // white space around displayed oneUps
- - setImageFrame:(NXRect *)aRect; // where the oneUp pic is in the image
- - setNumUp:(int)newNumUp; // set # of oneUps; use at start of game play
-
- // -setNumUp: and the next three methods are for use by the game.
- - incNumUp:sender; // add a oneUp (awarded bonuses or whatever)
- - (int)numUp; // how many oneUps are left
- - (BOOL)decNumUp:sender; // use a oneUp & update view
-
- - drawSelf:(NXRect *)rects :(int)rectCount; // render the view
- - read:(NXTypedStream *)stream; // for archiving & palettes
- - write:(NXTypedStream *)stream; // for archiving & palettes
-
- // give away extra guys; we act as delegate to ScoreKeeper and wait for
- // the score to cross critical points...
- - scoreChangedFrom:(int)oldScore to:(int)newScore;
- - setExtraManBonusTracker:tracker;
- - setDelegate:anObject;
- - extraManBonusTracker;
- - delegate;
-
- @end
-