If you only need to do it once, you would want to deactivate the touch began on your sprite. So in your custom overriden sprite
just do something like this :
-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
{
// Do awesome game related code over here
self.userInteractionEnabled = NO;
}
This should work on a custom CCSrpite
. This way you don't have to handle all that silly position code in your scene, and you are ready to go with one line of code.
Obviously you need to enable user interaction when you are creating your CCSprite
in order for the touchBegan
to be called in the first place.