Adam Ashwal
Adam Ashwal

Reputation: 1472

In Cocos2D how do I detect that finger is being held down?

I know the - (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event method but was wondering how I constantly do something, such as move a sprite, while a finger is down?

Upvotes: 4

Views: 1427

Answers (3)

KDaker
KDaker

Reputation: 5909

You could do it like Gajet or if your motion is constant you can schedule your actions. So assume you have this move method:

-(void)moveSprite:(ccTime) dt {

  // move your sprite here by small increments
}

And then in ccTouchBegan: method you mentioned, you schedule the move method [self schedule:@selector(moveSprite:)] and in ccTouchEnded you unschedule [self unschedule:@selector(moveSprite:)] this will stop the motion when you end your touch... Hope this helps

Upvotes: 7

Ali1S232
Ali1S232

Reputation: 3411

you just have to set a boolean as true when ccTouchBegan is called and when ccTouchEnd is called set is as false, then when ccTouchMove event is called you only have to check weather your flag is true or not.

Upvotes: 5

Axel
Axel

Reputation: 1754

Implement the appropriate UIGestureRecognizer subclass. You'll be sent either a begin or a changed or an ended event - and may act accordingly.

Upvotes: 2

Related Questions