ftp.nice.ch/pub/next/developer/resources/libraries/gamekit_proj.NI.sa.tar.gz#/gamekit_proj/Examples/PacMan/Player.h

This is Player.h in view mode; [Download] [Up]

// Handles moving and rendering the Pac, whether under player or demo control.

#import <gamekit/gamekit.h>

// legal directions to use as arguments to -newDirection: method
// also, as bitmasks for various arrays.
#define PAC_UP		0x08
#define PAC_DOWN	0x04
#define PAC_LEFT	0x02
#define PAC_RIGHT	0x01
#define PAC_STOP	0	// default; if not one of the above, we assume stopped

#define PAC_WIDTH	16	// width of a pac image in pixels (square)

// legal states the Pac can be in
#define PAC_DEAD	0
#define PAC_ALIVE	1
#define PAC_DYING	-11	// ten steps in death animation, then fully dead


@interface Player:GameActor
{
	id  maze;			// Maze
	id  pacsLeft;		// PlayerUpView
	id  pacs[3];			// pac images
	
	int	curDir;			// which way the player wants to go
	int	nextDir;		// which way the player wants to go next
	int pacX, pacY;		// where we're at
	int state;			// alive, dead, etc.
	int cycle;			// frame counter for animation
	
	BOOL playerStopped;	// true if player hit space bar to stop
}

- init;						// initialize the player
- (BOOL)newPlayer;			// get and set up a new Pac.  Returns NO if can't
- resetPlayer;				// reset all player info
- (BOOL)pacAlive;			// returns YES if Pac is alive
- pacDie;					// the pac will melt
- move:sender;				// Move the PacMan one animation frame
- demoMove:sender;			// Move the PacMan one animation frame (demo cntl)
- newDirection:(int)newDir;	// send Pac in new direction.
- renderAt:(int)posx :(int)posy move:(BOOL)moveOk;	// draw pac
		// you should lock focus on view that gets the Pac first.

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.