0

画面上の(x、y)位置をできるだけ早く更新する必要があるCCSpriteオブジェクトがあります。これは拡張現実アプリであるため、画面上の位置は実際の場所に固定されているように見える必要があります。

現在、それぞれの間updateにデバイスの方位と姿勢をチェックし、それに応じて新しいxとyの位置を決定することによってスプライトを動かします

[spriteObject setPosition:ccp(newX, newY)];

見出しの各次数の変化は、画面上の位置の10ピクセルに対応するため、このように位置を設定すると、スプライトは10ピクセルの間隔でジャンプします。これはばかげているように見えます。スムーズにアニメートしたいのですが、

[spriteObject runAction:[CCMoveTo actionWithDuration:0.2f position:ccp(newX, newY)]];

ただし、ここでの問題は、スプライトがアニメートしているときに新しい位置の更新が行われ、全体が台無しになることです。この問題の良い解決策を知っている人はいますか?私はこれまで多くの失敗した解決策を試してきたので、どんな助けでも大歓迎です。

4

1 に答える 1

0

スプライトの動きをポイントまでアニメートすることができます。つまり、1秒間に1 / numberOfUpdatesの持続時間で、アニメーション化された位置補正を1秒間に数回実行できます。何かのようなもの

- (void) onEnter
{
    [super onEnter];
    [self schedule:@selector(updatePositionAnimated) interval:0.2f];

}

- (void) updatePositionAnimated
{
    [spriteObject runAction:[CCMoveTo actionWithDuration:0.2f position:ccp(newX, newY)]];
}

この場合、アニメーションは十分スムーズになると思います

于 2012-06-14T22:07:52.233 に答える