2009-07-17 6 views
0

Je fais une application simple dans laquelle les cercles remplis rebondissent autour de l'écran. À l'heure actuelle, la vitesse des cercles est fixe, mais je veux qu'ils accélèrent ou ralentissent au hasard.Faire un mouvement irrégulier dans cocos2d?

J'ai essayé à l'origine d'utiliser NSTimer, mais j'ai découvert que l'intervalle de temps ne pouvait pas être rendu irrégulier. 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 semblent accélérer ou ralentir."

Il semble donc que je devrais utiliser la classe NSAnimation. Cependant, quand j'ai regardé le processus de dessin dans NSAnimation, il semble être encombrant et limité. Je veux faire plusieurs cercles et définir des paramètres pour leur comportement, donc beaucoup préfèrent utiliser un cadre plus simple tel que cocos2d-iphone. Puis-je utiliser le planificateur de cocos2d pour effectuer des intervalles irréguliers? Ou dois-je utiliser NSAnimation?

Le planificateur 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 
} 

Répondre

0

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 en changeant le delta de mouvement à la place?

+0

Qu'est-ce que le delta de mouvement? J'ai déjà des mouvements aléatoires, je veux une vitesse aléatoire. – Evelyn

+0

Oh, je comprends! Merci. :) – Evelyn