У меня есть эта настройка:
У слоя есть спрайт как дочерний элемент.Спрайт имеет этот код в своем методе init:
id fadeOut = [CCFadeOut actionWithDuration:1.0f];
id death = [CCCallFunc actionWithTarget:self selector:@selector(die)];
self.deathAction = [CCSequence actions:fadeOut, death, nil];
[self runAction:deathAction_];
Действие смерти вызывает метод спрайта 'die', в котором его состояние изменяется на 'dead'.
В своем методе обновленияслой проверяет всех дочерних элементов и удаляет те, которые являются «мертвыми» с помощью:
[self removeChild:child cleanup:YES];
Проблема заключается в том, что дочерний спрайт все еще имеет счет сохранения 2 после этой строки.Как я понимаю, это хранится в CCCallFunc.Если я опускаю это deathAction и вместо этого удаляю спрайты с нулевой непрозрачностью (когда они исчезают), код работает, и вызывается метод dealloc.
Как мне удалить спрайт, используя правильное действие?