- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//those are all touches on this began call
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView: [touch view]];
CGPoint convertedLocation = [[CCDirector sharedDirector] convertToGL:location];
//those are ALL the touches on screen
NSSet *allTouches = [event allTouches];
Вы также можете отслеживать касания, прочитав хэш-код касания и сохранив его, используя int firstTouchHash = [touch hash]
.
. Вы можете проверить в TouchesBegan, установлены ли касания и allTouches
набор имеет тот же count
(в этом случае мы впервые касаемся экрана), в этом случае мы можем сохранить хеш int firstTouchHash = [touch hash]
Когда мы снова коснемся экрана, allTouches
содержит больше элементов, чем touches
, и мы всегда знаем, что было первым касанием, потому что мы сохранили хэш.(без сохранения хэша, если мы касаемся одним пальцем, затем вторым, а затем третьим, когда происходит третье касание, мы не знаем, какой из двух предыдущих касаний является первым, потому что оба они находятся в allTouches
set (а set - неупорядоченная коллекция элементов))