2

いくつかのアニメーションをいじっていますが、たまたま近くにテストするデバイスがありません。空を横切る雲の簡単なアニメーションがあります。雲は次の方法でアニメーション化されます。

-(void)animateLayer:(CALayer*)layer toPosition:(CGPoint)position withDuration:(CGFloat)duration{
    // Prepare the animation from the current position to the new position
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];

    animation.fromValue = [layer valueForKey:@"position"];
    animation.toValue = [NSValue valueWithCGPoint:position];
    animation.delegate = self;

    animation.duration = duration;

    [animation setValue:layer forKey:@"cloudLayer"];

    // Update the layer's position so that the layer doesn't snap back when the animation completes.
    layer.position = position;

    // Add the animation, overriding the implicit animation.
    [layer addAnimation:animation forKey:@"position"];
}

レイヤーには単純な部分的に透明な画像が含まれています。ただし、これを実行すると、CPU 使用率が MacBook Air で予想されるよりもはるかに高くなります。私が非効率的にしていることはありますか?それとも、シミュレーターはアニメーションなどの特定のタスクで大量のリソースを消費するだけですか?

4

2 に答える 2

3

違いがあります。しかし、ほとんどのシステムでは、実際にはメリットがあります。RAM の量と CPU 速度が向上すると、実際に作業が改善されるため、コンピューターでの作業が改善される傾向があります。RAM が 2 GB を超えない限り、Macbook Air のパフォーマンスはおそらくそれほど向上しません。

同じことが Wifi にも当てはまります。イーサネットに接続されているコンピューターを使用している場合、インターネットは通常よりも高速に動作します。開発中、特にゲームの開発中は、このことを念頭に置いておくとよいでしょう。

編集

Minthos が指摘したように、OpenGL も同様に機能しない可能性があります。ただし、私は OpenGL で開発を行っていないため、それを確認することはできません。ただし、私の前のポイントは、他の場合でも有効です。単純な Cocos2D アニメーションは、シミュレーターでより適しているはずです。

于 2012-12-07T16:30:52.137 に答える
1

私が作成した OpenGL アプリの実行速度が、iphone 4S よりも macbook の方がはるかに遅いことに気付きました。これは、グラフィック ハードウェアの機能が異なるためである可能性があります。iPhone には PowerVR GPU が搭載されていますが、私の MacBook には 2 つの nVidia GPU が搭載されています。おそらくシミュレーターはソフトウェアレンダリングを使用していますか?

于 2012-12-07T16:45:25.430 に答える