Как мы можем обнаружить прикосновение спрайта? - PullRequest
1 голос
/ 20 марта 2010

У меня в приложении два спрайта. У обоих должны быть включены касания, и оба касания не зависят друг от друга. И если я касаюсь экрана (не на спрайтах), он должен иметь разные прикосновения. Моя проблема - все три sprite1, sprite2, оставшийся экран должен иметь независимые касания. Но моя программа принимает все прикосновения как то же самое. Как я могу сделать их так, как мне нужно?

Спасибо.

1 Ответ

1 голос
/ 26 марта 2010

, чтобы сделать это, сначала вам нужно включить мультитач для вашего приложения:

    [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 вы можете идентифицировать конкретный указатель касания, который не изменится, пока вы на самом деле не «закончите» это касание.

Например, если вы дотронетесь до экрана, вы получите сенсорный экземпляр, который останется с тем же адресом памяти, даже если вы перемещаете этот палец, пока вы не отпустите его. Удачи в этом, я использовал основы этого кода именно для управления спрайтами мультитач.

...