Question

je développe un jeu où lorsque l'utilisateur touche une carte, il va retourner lentement et le numéro sera affiché. A cet effet, ce que l'API cocos2d puis-je utiliser?

Ou devrais-je créer une animation avec des cadres indiquant le flip?

Était-ce utile?

La solution

Pour Retournement une vue u peut le faire comme ça,

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.6];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[UIView commitAnimations];

Avant de faire l'animation tout simplement créer une étiquette et l'ajouter en tant que sous-vue à la UIView. Réglez le texte au numéro u souhaitez afficher après l'animation.Hide ce label.At la fin de l'animation qui est après commitAnimations qui se trouve juste la propriété cachée de l'étiquette NO. Vous réaliserez le style d'animation tu veux, je suppose .. Hope this helps .... codage heureux ...:)

Autres conseils

Vous pouvez créer quelque chose de similaire à CCTransitionFlipX. Mais au lieu de le laisser fonctionner CCScene sur vos noeuds de carte (sprites).

Voici la mise en œuvre de cette classe (CCTransition.m):

//
// FlipX Transition
//
@implementation CCTransitionFlipX
-(void) onEnter
{
    [super onEnter];

    CCActionInterval *inA, *outA;
    [inScene_ setVisible: NO];

    float inDeltaZ, inAngleZ;
    float outDeltaZ, outAngleZ;

    if( orientation == kOrientationRightOver ) {
        inDeltaZ = 90;
        inAngleZ = 270;
        outDeltaZ = 90;
        outAngleZ = 0;
    } else {
        inDeltaZ = -90;
        inAngleZ = 90;
        outDeltaZ = -90;
        outAngleZ = 0;
    }

    inA = [CCSequence actions:
           [CCDelayTime actionWithDuration:duration_/2],
           [CCShow action],
           [CCOrbitCamera actionWithDuration: duration_/2 radius: 1 deltaRadius:0 angleZ:inAngleZ deltaAngleZ:inDeltaZ angleX:0 deltaAngleX:0],
           [CCCallFunc actionWithTarget:self selector:@selector(finish)],
           nil ];
    outA = [CCSequence actions:
            [CCOrbitCamera actionWithDuration: duration_/2 radius: 1 deltaRadius:0 angleZ:outAngleZ deltaAngleZ:outDeltaZ angleX:0 deltaAngleX:0],
            [CCHide action],
            [CCDelayTime actionWithDuration:duration_/2],                           
            nil ];

    [inScene_ runAction: inA];
    [outScene_ runAction: outA];

}
@end

Fondamentalement, il dirige une séquence de CCActions sur les deux scènes avec la durée donnée. Les orbites d'action de la CCOrbitCamera de l'appareil autour du centre de l'écran à l'aide des coordonnées sphériques.

est une application qui a mac

GeekGameBoard un tas de jeux en elle. Il dispose également d'une classe de carte qui gère flips et autres. Hope qui aide!

Je fais dans cocos2d-android-1 comme ça

CCSprite sprite=CCSprite.sprite("icon.png");
CCIntervalAction a = (CCIntervalAction)CCOrbitCamera.action(2, 1, 0, 0, 360, 0, 0);
addChild(sprite,1);
sprite.runAction(CCRepeatForever.action(a));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top