Лучшее, что можно сделать, когда у вас есть такой вопрос, — это просто реализовать обратные вызовы и в реализации зарегистрировать параметры. Например:
- (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, иначе вы вообще не получите никаких обратных вызовов.
person
dwineman
schedule
31.10.2010