Question

Je fais une application simple dans laquelle les cercles pleins rebondissent autour de l'écran. En ce moment, la vitesse des cercles est fixe, mais je veux qu'ils accélèrent ou ralentissent au hasard.

J'ai d'abord essayé d'utiliser NSTimer, mais j'ai découvert que l'intervalle de temps ne peut être irrégulière. Selon la documentation d'Apple, avec la classe NSAnimation, « Contrairement à NSTimer, les notifications d'animation peuvent se produire à intervalles irréguliers, ce qui vous permet de créer des animations qui apparaissent pour accélérer ou ralentir. »

Il semble donc que je devrais utiliser la classe NSAnimation. Cependant, quand je regardais le processus de dessin NSAnimation, il semble être encombrant et limité. Je veux faire plusieurs cercles et définir les paramètres de leur comportement, donc je beaucoup préfèrent utiliser un cadre plus simple, comme cocos2d-iphone.

Puis-je utiliser le planificateur de cocos2d pour faire des intervalles irréguliers? Ou dois-je utiliser NSAnimation?

Le planificateur de cocos2d ressemble à ceci:

-(id) init
{
    if( ! [super init] )
        return nil;

    // schedule timer
    [self schedule: @selector(tick:)];
    [self schedule: @selector(tick2:) interval:0.5];

    return self;
}

-(void) tick: (ccTime) dt
{
    // bla bla bla
}

-(void) tick2: (ccTime) dt
{
    // bla bla bla
}
Était-ce utile?

La solution

Au lieu de faire le changement de délai de temporisation, que diriez-vous d'avoir un intervalle de temporisation constante (disons 20 Hz) et changer la place du delta du mouvement?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top