UIPanGestureRecognizer为每个接触点获取翻译

时间:2013-04-30 19:08:15

标签: ios cocos2d-iphone uikit uigesturerecognizer

我有一个UIPanGestureRecognizer附加到父视图,各种CCSprite我想在平移时在父视图中移动。使用[gesture locationOfTouch:i inView:recognizer.view]我可以获得触摸的位置,但是如果我将其分配给我的子视图中心,它通常会使子视图意外移动,因为原始触摸可能不在精灵的确切中心。我真正想要的是为每个触摸位置获取[gesture translationInView:recognizer.view]并使用它。当你只有1次平移触摸时它很完美,但是超过1并且似乎无法为它们进行翻译。因为每次触摸都可以以不同的直接/速度进行平移。用户可以使用2个手指完全相互独立地移动两个不同的精灵。 - [UIPanGestureRecognizer translationInView:]不允许我获得不同的翻译。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

我找到了一个类别CCNode-SFGestureRecognizers,可以将UIGestureRecognizers附加到任何CCNode。这样我就可以避免需要多个翻译值。

答案 1 :(得分:0)

现在,如果您只对平移手势感兴趣,为什么不使用cocos touch方法?

touchBegan:计算(并保存)子视图中触摸的位置,在touchMoved:中,计算当前位置减去之前位置的平移。将您的子视图移动该金额。