接上一篇博文,我们继续完成射击的功能.
还是在MainScene.m中,添加initBullets方法:
[code]-(void)initBullets{ CCSprite *bullet; for (int i = 0; i < MAX_BULLET_COUNT; i++) {bullet = (CCSprite*)[CCBReader load:@"Sprites/Bullet"];bullet.positionType = CCPositionTypeNormalized;bullet.visible = NO;[_bullets addObject:bullet];[_physics addChild:bullet]; }}
[code] [self initBullets];
[code]-(CCSprite*)loadBullet{ static NSInteger last = 0; for (CCSprite* bullet in _bullets) {if (!bullet.visible) { bullet.visible = YES; return bullet;} } //如果所有子弹都可见,则取可见时间最长的那一颗 CCSprite *bullet = _bullets[last]; last = (last + 1)%MAX_BULLET_COUNT; return bullet;}