1

我正在设计一个应用程序,我们在多点触控点击和稍微延迟的多点触控点击方面遇到了一些问题(这导致了对 TouchesBegan 的 2 次单独调用)。

我们遇到的问题是当玩家同时用两根手指点击时:

有时它可以注册为一个 NSSet,touches.count = 2

或者

有时,如果玩家在第二次触摸时稍微晚了一点,它会注册两次对 CCTouchesBegan 的调用,每次调用 touches.count = 1。

使用 touches.count = 2 注册两个 TouchesBegan 调用以及当玩家在第二次触摸时稍晚(两次调用 TouchesBegan)使用相同的回调时,最简单的方法是什么?

我最初的想法是获取[事件时间戳]并将其与之前的时间戳进行比较,然后检查它是否在某个时间间隔内......

最好的方法是什么?

4

1 回答 1

1

您不需要时间戳比较。您可以使用事件来检索触摸,而不是使用触摸NSSet 对象。

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if( [[event allTouches] count] == 2 )
    {
        // Do your thing here
    }
}

注意:如果您用两根手指轻按,会稍有延迟,ccTouchesBegan 将被调用两次,但在第二次调用事件对象中会有两次触摸。

于 2012-09-21T07:16:51.823 回答