J'essaye d'intensifier fondamentalement un bouton dès qu'un contact est détecté. Voici ma scène:l'action ne s'exécutera pas sur un CCSprite à partir de ccTouchBegan dans cocos2d pour l'iphone
@implementation HomeScene
-(id) init
{
if((self = [super init])) {
...
// sp_btn_story is retained...
sp_btn_story = [[CCSprite spriteWithFile:@"main_menu_btn.png"] retain];
sp_btn_story.position = ccp(size.width - 146, 110);
[self addChild: sp_btn_story];
...
}
return self;
}
-(void) onEnter
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
-(void) onExit
{
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
}
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
NSLog(@"tapped!");
sp_btn_story.scaleX = 2;
[sp_btn_story stopAllActions];
[sp_btn_story runAction: [CCScaleTo actionWithDuration:0.5f scale:1.2f]];
return YES;
}
...
@end
Il met à l'échelle le X juste comme prévu. (J'ai jeté ça pour tester.) Mais l'action ne fonctionne pas pour une raison quelconque. :(Quelqu'un a des idées
Edit:?.. Utilisant cocos2d 0,99 BTW
Rob: merci beaucoup pour les suggestions. J'avais l'impression que c'était parce que j'ajoutais le sprite dans "init" et non "onEnter", mais je l'ai finalement réduit à la cause exacte. C'était parce que je n'avais pas [super onEnter]; Oops. J'ai ajouté cela et ça a très bien animé. Bon à savoir! – taber
Pas de problème. J'ai fait exactement la même erreur il y a quelques semaines. Oublier d'appeler [super onEnter] nuit gravement à Cocos2D. N'oubliez pas d'appeler aussi [super onExit] !! –
Bien, je suis tombé sur le même problème, merci d'avoir signalé qu'un [super onEnter] manquant était la cause du problème. J'ai ajouté ceci comme réponse, pour rendre la solution plus claire. –