0

塗りつぶされた円が画面上で跳ね返るシンプルなアプリを作成しています。現在、円の速度は固定されていますが、ランダムに速度を上げたり下げたりしてほしいです。

もともと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
}
4

1 に答える 1

0

タイマーの遅延を変更する代わりに、一定のタイマー間隔(たとえば、20 Hz)を設定し、代わりに移動デルタを変更するのはどうでしょうか。

于 2009-07-17T15:26:23.227 に答える