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

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

// This object moves and renders the Ghosts that chase and kill you.

#import <gamekit/gamekit.h>

typedef int intm[8];	// used in the arrays to control movement of ghosts

// valid states for a ghost
#define HOVER	0
#define CHASE	1
#define RUN		2
#define HOME	3

#define HARMLESS 2	// return value for munch (YES/NO/HARMLESS)

// ghost colors (for "myColor" instance variable)
#define BLUE_GHOST		0
#define GREEN_GHOST		1
#define ORANGE_GHOST	2
#define PURPLE_GHOST	3
#define INVISIBLE_GHOST	4
#define GHOST_EYES		5

// power dot states
#define DOT_NONE	0
#define DOT_EATEN	1
#define DOT_FADING	2

@interface Monster:GameActor
{
	id	player;		// This is who we chase
	id	maze;		// This is where we are
	id  ghosts[3];		// The tiff of the ghost images
	
	BOOL eatable;	// Can we be eaten ??
	int lastSense;	// Previous value of "sense"
	int powerState;	// what's the power dot state
	int powerTime;	// how long power dot's been on
	int state;		// what we're doing
	int fix;		// fix flag for hovering movement
	int loops;		// number of times we've circled around in the ghost box
	
	int img;		// which animation frame to use
	int myColor;	// which ghost (0-3) am I?
	
}

- init;	// Calls method below with semi-sane values...but you should use below:
- initGhost:(int)num player:(id)pac maze:(id)world at:(int)sx :(int)sy;
	// designated initializer; initializes all the ghosts.
- renderAt:(int)posx :(int)posy move:(BOOL)moveOk;	// draw ghost...
	// lockfocus in the view where it's drawn first.
- move:sender;			// decide where to move the ghost for the next frame
- powerDot:(BOOL)eat;	// called when power dots are eaten or run out.
- (BOOL)canBeEaten;		// returns "eatable".
- (int)munch;			// called when pac intersects ghost

// These four methods handle actual movement.  They are internal, and generally
// called by the (-move:) method.  You shouldn't ever use them directly!
- hover;			// hover moves solid ghost when in ghost chamber
- runAway;			// ghost runs away at 1/2 speed after power pill
- chase;			// ghost chases player down
- goHome;			// used to make the eyes run to ghost chamber at 2x speed
- moveOneFrame;		// makes the animation advance one step.
- powerCount;		// power dot count down

@end

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