I’m writing an iPhone app, and I want to handle multitouches. I’m using cocos2d libs. So I’ve made a CCLayer subclass and set it to be a CCStandartTouchDelegate. For some reason I don’t want to use UIGestureRecognizer and to build a correct logic I should know the answers for these questions:
-
If I tap the screen with one finger, and then with the other one. How many touches will be caught in
ccTouchesBegan? -
If I tap the screen with two fingers and then will move only one of them. How many touches will be caught in
ccTouchesMoved?
The best thing to do when you have a question like this is just to implement the callbacks, and in the implementation, log the parameters. For example:
Then just run your app and experiment, watching the log. You’ll learn more this way (and faster) than you will by asking here.
But to answer your specific questions:
You should get one call to ccTouchesBegan for each tap (even if the first finger is still down when the second tap occurs). If the two fingers hit simultaneously, you’ll get one call with two touches.
You’ll get repeated calls to ccTouchesMoved each time one or more of the fingers moves. If only one finger is moving, each call will be passed a single touch. Stationary fingers will not generate events until they are moved or lifted.
Of course, remember to set
isTouchEnabled = YESfor your CCLayer or you won’t get any callbacks at all.