Получение касания отправителя для ccTouchesMoved: (NSSet *) касается события: (UIEvent *)

#iphone #objective-c #ios #cocos2d-iphone

#iPhone #objective-c #iOS #cocos2d-iphone

Вопрос:

Как я могу найти в приложении cocos2d с несколькими касаниями, какое касание было вызвано ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event ? Я могу получить все касания, используя [event allTouches] , но как я могу найти, какое касание вызвало функцию, например, когда я хотел бы, чтобы это конкретное касание отображало определенный журнал NSLog.

Ответ №1:

События касания предоставляют вам объект UITouch * для каждого пальца. UITouch * остается неизменным на протяжении всего касания, от начала до завершения / отмены. Вы можете сохранить UITouch * в начатом событии и отпустить его (и установить для него значение nil) в завершенных и отмененных событиях.

Кстати, класс ввода KKInput (ссылка на класс) Kobold2D (улучшенный Cocos2D делает это намного проще. Начиная с предварительного просмотра 5, вы можете просто получить список текущих касаний в любое время, в любом классе или методе, потому что KKInput отслеживает касания для вас.