This is Shield.m in view mode; [Download] [Up]
#import "Shield.h"
#import "Ship.h"
#import "ActorMgr.h"
#import "SoundMgr.h"
#import "Thinker.h"
@implementation Shield
+ initialize
{
[super initialize];
[[NXApp delegate] addImageResource:"shield" for: self];
return self;
}
- activate:sender :(int)tag
{
NXSize tsize = {40,40};
NXSize tsize2 = {20,20};
[super activate:sender :tag];
ship = sender;
[self reinitWithImage:"shield"
frameSize:&tsize
numFrames:8
shape: CIRCLE
alliance: NEUTRAL
radius: 40
buffered: NO
x: ship->x
y: ship->y
theta: 0
vel: 0
interval: 10000000
distToCorner:&tsize2];
oldShields = 0;
return self;
}
- positionChanged
{
[self moveTo:ship->x :ship->y];
if (oldShields != ship->shieldStrength)
{
oldShields = ship->shieldStrength;
frame = 8 - (ceil(oldShields / 12.5));
if (frame < 0) frame = 0;
else if (oldShields <= 0) [actorMgr destroyActor:self];
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.