Делать нерегулярные движения в cocos2d? - PullRequest
0 голосов
/ 17 июля 2009

Я делаю простое приложение, в котором заполненные круги подпрыгивают по экрану. Прямо сейчас скорость кругов фиксирована, но я хочу, чтобы они ускорялись или замедлялись случайным образом.

Первоначально я пытался использовать NSTimer, но обнаружил, что временной интервал нельзя сделать нерегулярным. Согласно документации Apple, с классом NSAnimation, «в отличие от NSTimer, уведомления о анимации могут появляться с нерегулярными интервалами, что позволяет создавать анимации, которые появляются для ускорения или замедления».

Похоже, мне следует использовать класс NSAnimation. Однако, когда я посмотрел на процесс рисования в NSAnimation, он кажется громоздким и ограниченным. Я хочу сделать несколько кругов и определить параметры для их поведения, поэтому я бы намного предпочел бы использовать более простую структуру, такую ​​как cocos2d-iphone.

Можно ли использовать планировщик cocos2d для создания нерегулярных интервалов? Или я должен использовать NSAnimation?

Планировщик cocos2d выглядит так:

-(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
}

1 Ответ

0 голосов
/ 17 июля 2009

Вместо того, чтобы изменять задержку таймера, как насчет постоянного интервала таймера (скажем, 20 Гц) и изменения дельты движения вместо этого?

...