你可以只子類CCSprite和覆蓋缺省初始化從here
@implementation MySprite
-(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
{
if((self=[super initWithTexture:texture rect:rect]))
{
// initialize your ivars here
//ivar1 = xxx;
//ivar2 = yyy;
//ivar3 = zzz;
}
return self;
}
@end
// And to create an instance of MySprite you simply do:
MySprite *sprite = [MySprite spriteWithFile...];
// or any of the supported CCSprite methods.
採取initWithTexture:rect:
例如,你可以有一個超類說EnemySprite
,看起來像這樣
@interface EnemySprite : CCSprite
- (void)addToLayer:(CCLayer *)layer;
- (void)removeFromLayer:(CCLayer *)layer;
@end
比爲每種類型的敵人創建一個子類,例如:
@inteface BigEnemySprite : EnemySprite
@end
@implementation BigEnemySprite
- (void)addToLayer:(CCLayer *)layer {
[layer addChild:self];
// animation code for your big enemy
}
- (void)removeFromLayer:(CCLayer *)layer {
[layer removeChild:self];
// animation code
}
@end
比你可以用它們像
EnemySprite *enemy = [BigEnemySprite spriteFromFile:file];
[enemy addToLayer:self];
謝謝您的回答,但究竟是什麼的 ivar1 = XXX; ivar2 = yyy;做? – akuritsu 2012-02-19 04:30:56
它只是個例子,你應該初始化你的ivars – 2012-02-19 04:33:10
好吧,但是有可能把我的精靈的動畫放入我的精靈類中,並且每次精靈被調用並創建時,它都會動畫? – akuritsu 2012-02-19 04:34:48