iOS模拟器是否会降低动画效率?

时间:2012-12-07 15:42:14

标签: objective-c ios xcode

我一直在玩一些动画,碰巧我附近没有设备可以测试。我有一个简单的云动画在天空中移动。使用此方法对云进行动画处理:

-(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上预期的要高很多。我做的事情效率低下吗?或者模拟器是否在动画等某些任务上攫取了大量资源?

2 个答案:

答案 0 :(得分:3)

有区别。但在大多数系统中,实际上有一个好处。事情往往在计算机上运行得更好,因为RAM和CPU速度的提高实际上使事情变得更好。除非你的RAM高于2 GB,否则Macbook Air可能不会提高性能。

同样适用于Wifi,如果您的计算机已插入以太网,那么互联网的运行速度将超出正常水平。在开发过程中,特别是在游戏开发过程中,记住这一点很好。

修改

正如Minthos指出的那样,OpenGL可能效果不佳。但是,我无法验证,因为我没有用OpenGL开发东西。但是,我之前的观点在其他情况下仍然有效。简单的Cocos2D动画应该更适合在模拟器上使用。

答案 1 :(得分:1)

我注意到我写的一个OpenGL应用程序在我的macbook上比在我的iphone 4S上运行得慢得多。这可能是由于图形硬件的功能不同 - iPhone有PowerVR GPU,但我的macbook有两个nVidia GPU。也许模拟器使用软件渲染?