This is Boink.m in view mode; [Download] [Up]
#import "Boink.h" #import "BackView.h" #import "ActorMgr.h" #import "BOBall.h" #import "BOBrick.h" #import "SpaceSpinGen.h" #import "CacheManager.h" #import "xoxDefs.h" #import "Thinker.h" static int whichImage; @implementation Boink // invoked only by the actor manager - _createLevel:(int)lev { int i; char str[50]; [actorMgr newActor:(int)[BOBrick class] for:self tag:0]; [actorMgr newActor:(int)[BOSkull class] for:self tag:0]; for (i=0; i<7; i++) [actorMgr newActor:(int)[BOBall class] for:self tag:GOOD]; [[mainView window] setTitle:"Boink"]; sprintf(str,"BOtile%02d.tiff",(whichImage++)%6); [cacheMgr tileUsing:[[BOBall class] findImageNamed:str]]; return self; } - infoView { return infoView; } - didActivate:(Actor *)theActor { return self; } - didRetire:(Actor *)theActor { return self; } - keyDown:(NXEvent *)theEvent { return self; } - keyUp:(NXEvent *)theEvent { return self; } - scenarioSelected { return self; } - scenarioDeselected { return self; } - init { char path[256]; [super init]; if ([[NXBundle bundleForClass:[self class]] getPath:path forResource:"boink" ofType:"nib"]) { [NXApp loadNibFile:path owner:self withNames:NO fromZone:[self zone]]; } [[NXApp delegate] addImageResource:"BOballs" for: [BOBall class]]; return self; } - (COLLISION_PARADIGM)collisionParadigm { return GOOD_V_EVIL; } - (BOOL)newWindowContentSize:(NXSize *)s { int w = s->width,h = s->height; w = ((w+50) / 100) * 100; h = ((h+50) / 100) * 100; if (w < 400) w = 400; if (h < 300) h = 300; s->width = w; s->height = h; return YES; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.