我一直在玩一些动画,碰巧我附近没有设备可以测试。我有一个简单的云动画在天空中移动。使用此方法对云进行动画处理:
-(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上预期的要高很多。我做的事情效率低下吗?或者模拟器是否在动画等某些任务上攫取了大量资源?
答案 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。也许模拟器使用软件渲染?