Domanda

I sviluppare un gioco in cui quando l'utente tocca una scheda che sarà capovolgere lentamente e il numero verrà visualizzato. A tal fine, ciò API cocos2d posso utilizzare?

O devo creare animazioni con fotogrammi che indicano il flip?

È stato utile?

Soluzione

Per Sfogliando una vista u può fare in questo modo,

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

Prima di fare animazione solo creare un'etichetta e aggiungerlo come una visualizzazione secondaria al UIView. Impostare il testo al numero u desidera visualizzare dopo l'animation.Hide questo label.At alla fine dell'animazione che è dopo commitAnimations Basta impostare la proprietà nascosta dell'etichetta NO. Potrete raggiungere lo stile di animazione u vuole, credo .. Spero che questo aiuti .... codifica Felice ...:)

Altri suggerimenti

È possibile creare qualcosa di simile a CCTransitionFlipX. Ma invece di CCScene lasciarlo operare sui nodi di carte (sprites).

Ecco l'implementazione di questa 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

In sostanza si esegue una sequenza di CCActions su entrambe le scene con la durata data. Le orbite azione CCOrbitCamera la telecamera intorno al centro dello schermo in coordinate sferiche.

GeekGameBoard è un applicazione Mac, che ha un mucchio di giochi in esso. Essa ha anche una classe di carta che gestisce la ribalta e simili. Speranza che aiuta!

Lo faccio in cocos2d-android-1 come quella

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));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top