当一根手指仍在屏幕上时检测另一次触摸

时间:2012-01-30 13:10:36

标签: ios ios5 cocos2d-iphone

我希望在手指仍在屏幕上时检测到触摸意味着仍然触摸取消而未调用...是否可能因为我想忽略该触摸并在下一根手指上执行操作... ...

由于

2 个答案:

答案 0 :(得分:1)

- (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]保存触摸来跟踪触摸。

如果触摸设置且allTouches集具有相同的count(在这种情况下我们是第一次触摸屏幕),您可以签入TouchesBegan,在这种情况下我们可以保存哈希int firstTouchHash = [touch hash]

当我们再次触摸屏幕时,allTouches包含的元素多于touches,我们总是知道这是第一次触摸,因为我们已经保存了哈希值。 (不保存哈希值,如果我们用1个手指触摸,然后用第二个触摸,然后用第三个触摸,当第三次触摸发生时,我们不知道前两个触摸中的哪一个是第一个,因为它们都在{{ 1}} set(和一个集合是一个无序的元素集合))

答案 1 :(得分:1)

还要确保在视图上启用了多次触摸,方法是通过Storyboard编辑器中的multipleTouchEnabled属性或Multiple Touch复选框。