簡體   English   中英

提高iOS游戲的幀率

[英]Improving framerate of ios game

我有一個簡單的iOS游戲即將完成。 它可以在新設備上平穩運行,但是在裝有iOS 7的iPhone 4S上運行則毫無希望。

對它進行時間分析時,似乎在設置UIViewscenter屬性時使用了很多計算能力,這些屬性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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM