我们如何检测精灵的触摸?

时间:2010-03-20 06:16:14

标签: cocoa-touch iphone-sdk-3.0 cocos2d-iphone sprite

我的应用程序中有两个精灵。两者都应该启用触摸,两个触摸都是相互独立的。如果我触摸屏幕(不是精灵),它应该有不同的触摸。我的问题是所有三个sprite1,sprite2,剩余的屏幕应该有独立的触摸。但我的计划正在采取同样的措施。我怎样才能把它们变成我需要的东西呢?

谢谢。

1 个答案:

答案 0 :(得分:1)

要做到这一点,首先需要为您的应用程序启用多点触控:

    [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,您可以识别特定的触摸指针,在您实际“结束”触摸之前不会改变。

例如,如果您触摸屏幕,即使您移动了手指,也会获得一个触摸实例,该实例将保留相同的内存地址,直到您将其释放为止。祝你好运,我将这段代码的基础完全用于多点精灵管理。