在touchesEnded事件下确定多点触控

时间:2014-03-17 16:03:38

标签: sprite-kit multi-touch

在touchEnded事件中使用spritekit,有没有办法确定该事件的触点数?

我想知道触发点的数量(单个,双个,三个 - 一个手指,两个手指或三个手指)用于触发此事件,我将需要根据每种类型执行不同的操作触摸(单点触摸的正常移动,两个手指触摸的双倍速度,以及三个手指触摸的跳跃动作)。

我通过单点触摸实现均匀操作,只需要知道识别多点触控手势,或许还有如何实现它们。

2 个答案:

答案 0 :(得分:3)

看起来我只需要做一个

[[event allTouches] count]

实际获得触摸计数。

答案 1 :(得分:1)

您还可以使用UITapGestureRecognizer并将numberOfTouchesRequired设置为您想要的手指数。

在你的SKScene:

- (void)didMoveToView:(SKView *)view 
{
    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerTap:)];
    tapRecognizer.numberOfTouchesRequired = 2;    
    [[self view] addGestureRecognizer:tapRecognizer];
}

- (void)handleTwoFingerTap:(UITapGestureRecognizer *)sender
{
    if (sender.state == UIGestureRecognizerStateEnded)
    {
        // your code
    }
}