This is Template.m in view mode; [Download] [Up]
/* indent:4 tabsize:8 font:fixed-width */ #import "Template.h" #import "localstrings.h" static id _templateSharedInstance = nil; @implementation Template + (Template*) sharedInstance /*" Instead of the old method of calling SolGameController when you wanted to message your game module, you now call [Template sharedInstance] and direct messages to the returned instance. You can use this to check if the game has been won, among other things. "*/ { return _templateSharedInstance; } /*--------------------------------------------------------------------------- | | - initFromBundle:aBundle withName:(NSString*)name | | returns: (id) self | |---------------------------------------------------------------------------- | | Instantiate an object of this class. | \---------------------------------------------------------------------------*/ - initFromBundle:(NSBundle*)aBundle withName:(NSString*)name /*" Extends our superclass method in order to set our shared instance variable. "*/ { [super initFromBundle:aBundle withName:name]; // This is used instead of having a global SolGameController() // function. It is assumed that this method will be called // only once and that our +sharedInstance method will return // the single instance. _templateSharedInstance = self; return self; } /*--------------------------------------------------------------------------- | | - inspectorWillBeRemoved | |---------------------------------------------------------------------------- | | Sent by game engine just before removing this module's inspector from | view. | \----------------------------------------------------------------------------*/ - (void) inspectorWillBeRemoved { // ****custom code here**** } /*--------------------------------------------------------------------------- | | - inspectorInstalled | |---------------------------------------------------------------------------- | | Sent by game engine just after installing this module's inspector. | \----------------------------------------------------------------------------*/ - (void) inspectorInstalled { // ****custom code here**** } /*--------------------------------------------------------------------------- | | - startGame: | |---------------------------------------------------------------------------- | | Start a new game. Get confirmation from the user before aborting a | game in progress. | \----------------------------------------------------------------------------*/ - (void) startGame:sender { [super startGame:sender]; [self setupGame:YES]; } /*--------------------------------------------------------------------------- | | - restartGame: | |---------------------------------------------------------------------------- | | Restart the game in progress. | \----------------------------------------------------------------------------*/ - (void) restartGame:sender { [super restartGame:sender]; [self setupGame:NO]; } /*--------------------------------------------------------------------------- | | - setupGame:(BOOL)redeal | |---------------------------------------------------------------------------- | | Setup a new game. If "redeal" is true, deal a new deck, otherwise | use the same cards as the previous game. | \----------------------------------------------------------------------------*/ - (void) setupGame:(BOOL)redeal { // ****custom code here**** // pop the game window to the front [gameWindow makeKeyAndOrderFront:self]; } /*--------------------------------------------------------------------------- | | - endGame:sender | |---------------------------------------------------------------------------- | | End the game in progress. Discard the game window. | \----------------------------------------------------------------------------*/ - (void) endGame:sender { // close the game window [super endGame:sender]; // ****custom code here**** } /*--------------------------------------------------------------------------- | | - win | |---------------------------------------------------------------------------- | | Called when the game has been won. This is where you can insert fancy | winning routines, or just call the default (boring) routine. | \----------------------------------------------------------------------------*/ - (void) win { [super win]; // replace this with something wonderful } /*--------------------------------------------------------------------------- | | - lose | |---------------------------------------------------------------------------- | | Called when the game has been lost. Most games probably won't bother | to check if they have lost. | \----------------------------------------------------------------------------*/ - (void) lose { [super lose]; // replace this with something wonderful } /*--------------------------------------------------------------------------- | | - checkForWin | |---------------------------------------------------------------------------- | | Called to check the state of the game. Always override (unless your | game is impossible to win). | \----------------------------------------------------------------------------*/ - (void) checkForWin { #ifdef FILL_THIS_IN_YOURSELF if (I win the game) { [self win]; } #endif } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.