1

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

我该怎么做?

4

2 回答 2

1

我找到了一个类别CCNode-SFGestureRecognizers,它增加了附加UIGestureRecognizers到任何CCNode. 这样我就可以绕过需要多个翻译值。

于 2013-05-01T15:29:23.907 回答
0

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

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

于 2013-05-01T14:42:53.773 回答