2015-09-12 43 views
1

我做遊戲的Android與libGDX,並使用遊戲引擎的這個特點:libGDX奇怪的FPS下降和調試

  • 聲音,音樂
  • TextureAtlas(這個OBJ總數:2)
  • tilemap的
  • 簡單手勢檢測
  • 良好AssetsManager的使用與使用後處置對象。

我有時會碰到一些奇怪的FPS滴。 FPS通常在59左右,然後第二次下降到39-42左右,此時遊戲「凍結」一點,因此兩幀之間的暫停很大。

我不知道究竟是什麼問題,以及如何找到問題的根源,因爲我無法用我的調試技巧掩蓋它。

  1. 我檢查了內存分配和GC acitivity =>沒問題,那時候GC沒有激活。
  2. 我試過方法跟蹤,但它在追蹤錯誤方面沒有用處,因爲只有跟蹤使用了大量的資源,而FPS在啓動時大約是10。
  3. 我經歷了我的代碼,並試圖找到問題,但每個框架我做同樣的事情,沒有理由讓FPS下降。

我不會在帖子上發佈一些代碼,因爲我真的不知道代碼的哪一部分可以造成問題。

我問你:你有沒有用libGDX進行小測驗,你是如何解決這個問題的,你知道我怎麼用調試工具來發現錯誤。

感謝您的建議。

回答

0

有聲音和Android的一些已知的小問題,特別是在三星設備(這可能是您的模擬器是什麼)。

我懷疑這是造成這個問題的原因,並且如果您檢查多個併發聲音播放時的幀頻,它會像您所描述的那樣稍微下降。

盡你所能克服這一點的方法是儘可能降低聲音/音樂文件的採樣率,也可以將音樂存儲爲.mp3和聲音作爲.wav。

原因是聲音作爲wav文件會跳過不必要的解碼,這會在.mp3中發生,當聲音在內存中混合時。

希望這會有所幫助。

0

嘗試禁用一個接一個的東西,直到看到FPS穩定。比如,評論一下粒子效應,爆炸聲或者任何遊戲效果。 看看libGDX Profiling

  • 檢查您是否進行過多繪製調用或紋理切換。

  • 在渲染循環中的每個方法中逐個使用性能計數器 並查看哪一個花費的時間比應該多。