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

I've noticed that an OpenGL app I've written runs much slower on my macbook than on my iphone 4S. This may be due to different capabilities in the graphics hardware - the iPhone has a PowerVR GPU but my macbook has two nVidia GPUs. Perhaps the simulator uses software rendering?

于 2012-12-07T16:45:25.430 回答