Reputation: 17421
I have a UIPanGestureRecognizer attached to a parent view, with various CCSprite
I want to move around in the parent when panned. Using [gesture locationOfTouch:i inView:recognizer.view]
I can get the location of the touch but if I assign that to my subview's center it often makes the subview move unexpectedly since the original touch is probably not in the exact center of the sprite. Really what I want is to get the [gesture translationInView:recognizer.view]
for each of the touch locations and use that. It works perfect when you only have 1 panning touch, but more then 1 and there appears no way to get translations for them. Because each touch can be panning in a different directon/speed. The user can use 2 fingers to move two different sprite completely independent of each other. -[UIPanGestureRecognizer translationInView:] doesn't allow me to get the different translations.
How should I do this?
Upvotes: 1
Views: 1085
Reputation: 17421
I found a category CCNode-SFGestureRecognizers that adds the ability to attach UIGestureRecognizers
to any CCNode
. This way I can get around needing multiple translation values.
Upvotes: 1
Reputation: 3824
Now, if you're only interested in pan gesture, why not use cocos touch methods?
In touchBegan:
calculate (and save) the location of touch in the subview, in touchMoved:
, calculate translation which is just current location less the previous location. Move your subview by that amount.
Upvotes: 0