我有一个UIPanGestureRecognizer附加到父视图,各种CCSprite
我想在平移时在父视图中移动。使用[gesture locationOfTouch:i inView:recognizer.view]
我可以获得触摸的位置,但是如果我将其分配给我的子视图中心,它通常会使子视图意外移动,因为原始触摸可能不在精灵的确切中心。我真正想要的是为每个触摸位置获取[gesture translationInView:recognizer.view]
并使用它。当你只有1次平移触摸时它很完美,但是超过1并且似乎无法为它们进行翻译。因为每次触摸都可以以不同的直接/速度进行平移。用户可以使用2个手指完全相互独立地移动两个不同的精灵。 - [UIPanGestureRecognizer translationInView:]不允许我获得不同的翻译。
我该怎么做?
答案 0 :(得分:1)
我找到了一个类别CCNode-SFGestureRecognizers,可以将UIGestureRecognizers
附加到任何CCNode
。这样我就可以避免需要多个翻译值。
答案 1 :(得分:0)
现在,如果您只对平移手势感兴趣,为什么不使用cocos touch方法?
在touchBegan:
计算(并保存)子视图中触摸的位置,在touchMoved:
中,计算当前位置减去之前位置的平移。将您的子视图移动该金额。