#cocos2d-iphone #multi-touch
#cocos2d-iphone #мультитач
Вопрос:
Я пытаюсь заставить мой подкласс CCLayer реагировать на мультитач. В методе инициализации, который я вызываю
self.isTouchEnabled=YES;
В методе, называемом registerWithTouchDispatcher, я вызываю
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO];
В моем делегате приложения я вызываю
[glView setMultipleTouchEnabled:YES];
Вызывается метод ccTouchBegan:withEvent:, но никогда ccTouchesBegan:withEvent. Я довольно новичок в cocos2d, так что это может быть что-то простое, я просто не могу понять, что это такое.
Комментарии:
1. Глупый вопрос, но… Было ли несколько касаний?
Ответ №1:
Добавьте [[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0];
в свой класс, чтобы получать нецелевые касания.
Из документации cocos2d (ссылка:http://www.cocos2d-iphone.org/api-ref/0.99.0/interface_c_c_touch_dispatcher.html )
CCTouchDispatcher. Синглтон, который обрабатывает все события касания. Диспетчер отправляет события зарегистрированным операторам касания. Существует 2 разных типа сенсорных обработчиков:
Стандартные обработчики касаний Нацелены на обработчики касаний Стандартные обработчики касаний работают подобно обработчику касаний CocoaTouch: набор касаний передается делегату. С другой стороны, целевые обработчики касаний получают только 1 касание одновременно, и они могут «проглатывать» касания (избегать распространения события).
Во-первых, диспетчер отправляет полученные касания целевым касаниям. Эти касания могут быть проглочены целевыми обработчиками прикосновений. Если все еще остаются касания, то оставшиеся касания будут отправлены в стандартные обработчики прикосновений.