我有一个简单的iOS游戏接近完成。它在新设备上运行得相当顺畅,但是在带有iOS 7的iPhone 4S上运行它是没有希望的。
时间分析,似乎在设置center
的{{1}}属性时会使用大量的计算能力,这些属性可以随时在屏幕上的多个对象上设置。使用UIViews
同时运行这些函数会导致非常奇怪的行为,即游戏中的不同对象不会按照它们应该的时间或速度移动。
我发现我没办法加快速度。
这是一款简单的2D游戏,它不应该在iOS设备上造成这种损失。
有什么建议吗?
答案 0 :(得分:0)
您需要告诉我们更多关于您是如何做到这一点的。你是否正在使用定时循环进行动画,为每个帧设置视图的中心属性?如果是这样,那就无法在iOS中高效地使用图形硬件。 4s是一个相当新的设备。它仍在广泛使用(我的手机是4s),你应该能够支持它。
我从4s和iPad 2中得到30-60 FPS,使用OpenGL对图像进行网格转换,所以它是可能的。
在开发过程中,对性能最差的目标设备进行性能测试的时间是“早期且经常”,而不是在接近完成时。
不幸的是,答案可能是你动画制作方式的重大变化。同样,您需要提供更多详细信息。
答案 1 :(得分:0)
您是否在update:
方法上使用增量时间?它应该基于硬件提高性能。如果你还没有使用它,那么你就是这样做的,考虑到你在一个单独的类上有一个玩家属性,例如:
@property (nonatomic, assign) NSTimeInterval previousUpdateTime;
- (void)update:(NSTimeInterval)currentTime
{
NSTimeInterval delta = currentTime - self.previousUpdateTime;
if (delta > 0.02) {
delta = 0.02;
}
self.previousUpdateTime = currentTime;
[self.player update:delta];
...
}