This is very strange for me, the way that pointers work.
But I follow your advice and try the following code:
CCSprite *mole = (CCSprite *)sender;
mole->setUserData((void *) 1);
and create an if
if (mole->getUserData() == (void *)0) continue;
I don’t believe, but work’s perfectly.