patrick
patrick

Reputation: 9742

trying to detect touch ended and touch moved for CCSprite

I have a CCSprite subclass, and initially I had set it up with a

So I had the following code:

    -(void)onEnter {
        [super onEnter];

       [[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
    }

    -(void)onExit {
        [super onExit];

        [[[CCDirector sharedDirector] touchDispatcher] removeDelegate:self];
    }

    -(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
        if ([self containsTouch:touch]) {
            // do stuff
            return YES;
        }
        return NO;
    }

But then I realized that I actually didn't want to use touchBegan, because I want to detect if a sprite has been dragged downward-- So I wanted to use touchMoved and touchEnded instead of touchBegan.

However, when I implement those methods, they are not called...

How can I tell when the sprite's touch ended, and if it was "swiped"?

Upvotes: 1

Views: 855

Answers (3)

Michal Zaborowski
Michal Zaborowski

Reputation: 5099

CCTouchableSprite - my touchable sublcass of CCSprite with Objective-C blocks, you can use touchMoved to detect what you want.

Upvotes: 0

YvesLeBorg
YvesLeBorg

Reputation: 9079

In order for the dispatcher to call your methods (moved, ended, cancelled), you have to first claim the touch ie. you will process the events. That is done in ccTouchBegan, when you return YES. After that you will receive the other events.

Upvotes: 0

KK.
KK.

Reputation: 783

  1. Enabling multiple touches: In the applicationDidFinishLaunching:application method in your appdelegate, set multiple touches to YES: [glView setMultipleTouchEnabled:YES]; Then in your CCLayer subclass (the class you are working in for detecting touches), in the init method, add self.isTouchEnabled = YES; Now your multi touch methods should get called.

  2. Swiping: cocos2d does not support gestures out of the box. You will likely have to work yourself. You can start with the apple event handling guide about gestures. The How To Drag and Drop Sprites with Cocos2D totorial at raywenderlich.com hepled me.

Upvotes: 1

Related Questions