[英]Improving framerate of ios game
我有一個簡單的iOS游戲即將完成。 它可以在新設備上平穩運行,但是在裝有iOS 7的iPhone 4S上運行則毫無希望。
對它進行時間分析時,似乎在設置UIViews
的center
屬性時使用了很多計算能力,這些屬性UIViews
隨時在屏幕上的多個對象上設置每一幀。 使用dispatch_async
同時運行這些功能會導致非常奇怪的行為,其中游戲中的不同對象不會按預期的時間或速度移動。
我找不到加快速度的方法。
這是一個簡單的2D游戲,因此不應在iOS設備上承擔此費用。
有什么建議么?
您需要告訴我們更多有關您如何執行此操作的信息。 您是否正在使用定時循環進行動畫設置,在每一幀的視圖上設置center屬性? 如果是這樣,那將無法有效利用iOS中的圖形硬件。 4s是相當新的設備。 它仍然被廣泛使用(我的手機是4s),您應該能夠支持它。
使用OpenGL對4s和iPad 2進行網格轉換后,我得到30-60 FPS。
在性能最高的目標設備上進行性能測試的時間是在開發過程中的“早期且經常”,而不是在接近完成時。
不幸的是,答案可能是對動畫制作方式的重大更改。 同樣,您需要提供更多詳細信息。
您是否在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];
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.