У меня есть собственный подкласс CCSprite, и в нем я делаю это:
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:-1 swallowsTouches:YES];
во время пользовательской инициализации спрайта.
Очень интересно, даже когда я сделаю это позже, из основного класса сцены, который его контролирует:
[customSprite removeFromParentAndCleanup:YES];
Спрайт все еще отвечает на этот метод в своем классе:
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
очень любопытно!
У меня изначально этого не было, но я добавил его в класс пользовательских спрайтов, и это не имело никакого значения:
-(void)dealloc{
[super dealloc];
}
Есть идеи, что здесь происходит?
ОБНОВЛЕНИЕ: не уверен, что это актуально, но мне интересно, если removeFromParentAndCleanup
работает на спрайте, который добавляется в пакет спрайтов, так как мой спрайт действительно является частью CCSpriteBatchNode