我们如何检测精灵的触摸?
问题描述:
我在我的应用程序中有两个精灵。两者都应该启用触摸并且两个触摸都是彼此独立的。如果我触摸屏幕(不是精灵),它应该有不同的触摸。我的问题是全部三个sprite1,sprite2,剩余的屏幕应该有独立的触摸。但我的计划正在采取所有的触摸。我怎样才能使他们成为我所需要的?我们如何检测精灵的触摸?
谢谢。
答
要做到这一点,首先你需要启用多点触控的应用程序:
[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 *)触摸,您可以识别特定的触摸指针,直到实际“结束”该触摸才会更改。
例如,如果您触摸屏幕,即使您移动该手指,也会得到一个将保留相同内存地址的触摸实例,直到您释放它为止。祝你好运,我完全用这个代码的基础来进行多点触控精灵管理。
您是否要求多点触控帮助?或者当他们中的一个被触摸时,他们都注册了一个触摸吗? –
我在问多点触控。每个人在接触时都应该调用自己的行为或方法。 –