Лучшее, что нужно сделать, когда у вас возникнет такой вопрос, - это просто реализовать обратные вызовы, а в реализации зарегистрировать параметры. Например:
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// Log everything (there will be repetition because the event contains the set of touches):
NSLog(@"ccTouchesBegan: touches = %@; event = %@", touches, event);
// Or, just log the number of touches to simplify the output:
NSLog(@"ccTouchesBegan: %d touches", [touches count]);
return kEventHandled;
}
Тогда просто запустите свое приложение и поэкспериментируйте, просматривая журнал. Таким образом (и быстрее) вы узнаете больше, чем спросите здесь.
Но чтобы ответить на ваши конкретные вопросы:
Вы должны получать один вызов ccTouchesBegan для каждого касания (даже если первый палец все еще опущен, когда происходит второе касание). Если два пальца ударить одновременно, вы получите один звонок с двумя касаниями.
Вы будете получать повторные вызовы ccTouchesMoved каждый раз, когда перемещается один или несколько пальцев. Если движется только один палец, каждый вызов будет передан в одно касание. Стационарные пальцы не будут генерировать события, пока они не будут перемещены или подняты.
Конечно, не забудьте установить isTouchEnabled = YES
для CCLayer, иначе вы не получите никаких обратных вызовов.