Держите массив ваших спрайтов, или, если вы используете batchNode, вы можете сделать это.
Когда произойдет столкновение, просмотрите свои спрайты.Проверьте расстояние с их положением и центром взрыва и убейте их, если они находятся в радиусе действия.
например,
CCSprite *sprite;
for (sprite in [batchNode descendants]) {
if ([sprite isInRangeOf:[explosionSprite position]]) {
[sprite yourRemovalMethod];
}
}
метод isInRangeOf: 'будет в вашем подклассе спрайта
Что-то вроде ..
-(BOOL) isInRangeOf:(CGPoint)explosionCenter {
//Use pythagoras theorem to work out the distance between [sprite position] and [explosionCenter]
CGFloat dx = explosionCenter.x - [self position].x;
CGFloat dy = explosionCenter.y - [self position].y;
float distance = sqrt(dx*dx + dy*dy );
// If your distance is less than or equal to your 'death radius' return YES, else No.
if (distance <= 25) {
return TRUE;
} else {
return FALSE;
}
}
Надеюсь, это поможет.