2012-10-23 3 views
0

J'ajoute CCMenuItems dans une boucle, puis je me déplace dans le menu CCM avec EaseIn. Existe-t-il un moyen de déplacer chaque CCMenuItem par lui-même?CCMenu enfants transition séparément

CGSize winSize = [[CCDirector sharedDirector] winSize]; 
CCMenu *chapterMenu = [CCMenu menuWithItems: nil]; 
for(int i =1; i<=5; i++){ 
    CCMenuItem *chapter = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"sprite.png" rect:CGRectMake(0, 0, 150, 210) selectedSprite:nil disabledSprite:nil target:self selector:@selector(OnPlay:)]; 
    chapter.tag = i; 
    [chapterMenu addChild:chapter]; 
} 
[chapterMenu alignItemsHorizontallyWithPadding:40]; 
chapterMenu.position = ccp(chapterMenu.position.x, chapterMenu.position.y + winSize.height); 
id action = [CCMoveBy actionWithDuration:0.5f position:ccp(0, -winSize.height)]; 
id ease = [CCEaseIn actionWithAction:action rate:1.5f]; 
[chapterMenu runAction:ease]; 
[self addChild:chapterMenu]; 

Répondre

1

Vous pouvez exécuter des actions sur les éléments de menu individuels et il ne s'agit que de sous-classes de CCNode. N'oubliez pas que leur position sera relative au menu CCM, pas à votre scène.

+0

Oui mais moi mais je devrais nommer chaque enfant différemment. Y a-t-il une façon plus propre de le faire? – iamruskie

+0

Vous pouvez parcourir les enfants de votre CCMenu et appliquer des actions à chacun d'entre eux. –

+0

Ok, mais comment puis-je ajouter un délai à la boucle pour que chaque mouvement puisse avoir lieu avant que la prochaine boucle soit exécutée? – iamruskie

Questions connexes