, чтобы сделать это, сначала вам нужно включить мультитач для вашего приложения:
[self setMultipleTouchEnabled:YES];
Затем, чтобы идентифицировать прикосновения, вы можете использовать что-то вроде следующего кода:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for ( UITouch* Touch in touches )
{
printf( "Touch began %p, tapcount %d\n", (void *) Touch, [Touch tapCount] );
fflush( stdout );
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
for ( UITouch* Touch in touches )
{
printf( "Touch moved %p, tapcount %d\n", (void*)Touch, [Touch tapCount] );
fflush( stdout );
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for ( UITouch* Touch in touches )
{
printf( "Touch ended %p, tapcount %d\n", (void*)Touch, [Touch tapCount] );
fflush( stdout );
}
}
Таким образом, с помощью (void *) Touch вы можете идентифицировать конкретный указатель касания, который не изменится, пока вы на самом деле не «закончите» это касание.
Например, если вы дотронетесь до экрана, вы получите сенсорный экземпляр, который останется с тем же адресом памяти, даже если вы перемещаете этот палец, пока вы не отпустите его. Удачи в этом, я использовал основы этого кода именно для управления спрайтами мультитач.