У меня есть класс, расширенный из CCSprite, который реализует CCTargetedTouchDeledate следующим образом:
@interface PianoKey : CCSprite <CCTargetedTouchDelegate> {
}
Это имеет следующие методы, относящиеся к CCTouchDispatcher:
-(void) onEnter {
[super onEnter];
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:INT_MIN+1 swallowsTouches:YES];
}
-(void) dealloc {
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
[super dealloc];
}
А также имеет стандартные методы CCTouchesBegan и т. Д. Идея состоит в том, чтобы имитировать мультитач, регистрируя каждое фортепиано в диспетчере касания.
Все это прекрасно работает, за исключением случаев, когда я перехожу на новую сцену. Прикосновения к этим клавишам пианино все еще регистрируются и будут иметь приоритет над такими вещами, как пункты меню и т. Д. В новой сцене. Похоже, спрайты не удаляются из CCTouchDispatcher ...
Любая помощь приветствуется!