Les menus MenuItem ne sont actuellement pas capables de répondre au 'contact amorcé' et sont codés en dur pour répondre uniquement à l''extrémité tactile'.
Dans Menu.m, à partir de la ligne 105, vous verrez la déclaration ccTouchesBegan.
Si vous souhaitez modifier le comportement actuel de menu, vous pouvez sous-classe comme si:
@interface MenuDown: Menu
{
}
@end
@implementation MenuDown
-(BOOL)ccTouchesBegan:(UITouch *)touches withEvent:(UIEvent *)event {
[self ccTouchesBegan:touches withEvent: event];
if(item) { [item unselected]; [item activate]; }
}
@end
Ce n'est pas testé, mais au fond ... Je viens empoigné un code de Menu.m dans le ccTouchesEnded , et copié dans une version surchargée de ccTouchesBegan pour la nouvelle classe MenuDown.
Vous pouvez ensuite définir votre menu comme:
MenuDown *menu = [MenuDown menuWithItems: image, nil];
Ce -should- vous donner une 'réaction au toucher a commencé' réponse de la ... de Cocos2D MenuItem
Cependant, ce n'est pas vraiment suggéré ... car je ne vois pas pourquoi vous voudriez que le 'bouton' réponde au toucher, par opposition à 'l'action finale' ... comme il est écrit, Menu permet actuellement à l'utilisateur de presser vers le bas , puis glissez pour annuler l'action de sélection du menu.
Menu/MenuItem ne sont pas destinés à être utilisés comme 'objets réactifs au contact' (c'est-à-dire des objets de jeu réels) si c'est, par hasard, ce que vous essayez de faire.