Мне нужна помощь, я попытался удалить ccnode, который постоянно обновляется в разных местах и добавляет их в массив, чтобы получить контроль над тем, какие спрайты находятся на экране, но дело в том, что я не могу их удалить, он обнаруживает штрихи но не удаляются ли какие-либо идеи? здесь используется код im, используемый для перехода на узел. Заранее спасибо.Как удалить CCnode прикосновением?
- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToUI:location];
for (CCNode *sprite in _spritesOnScreen) {
if (CGPointEqualToPoint(sprite.position, location)) {
[_spritesOnScreen removeObject:sprite];
[self removeChild:sprite cleanup:YES];
}
}
}
шансы получить точку в соответствии с точкой очень тонкие, если учесть, что прикосновение - это какое-то среднее геометрическое всех точек, которые активируются одним кончиком пальца. Лучше всего проверить, есть ли UITouch, который вы получаете, в ограничивающей коробке яблок. Много примеров и вопросов по SO на эту тему. Кроме того, вы удаляете из _appleOnScreen во время итерации массива. Это будет бомбить, если вы не выполните итерацию в обратном порядке. – YvesLeBorg