簡體   English   中英

在Android上使用OpenGL ES 2.0進行生澀的精靈(2d)運動

[英]Jerky sprite (2d) movement with OpenGL ES 2.0 on Android

編輯2.添加了logcat的屏幕截圖。 如果將子畫面的數量減少到1,我仍然會得到間歇性的“停止/啟動”-因此,我認為這不是我的代碼,因為使用1個子畫面時,我的幀速率徘徊在85-90 fps左右。 我猜這是手機上的東西,logcat記錄了很多事情,所以我假設很多事情在后台運行。 有什么方法可以讓我的應用程序在運行時獲得比其他服務更高的優先級嗎?

編輯1.請在問題末尾查看編輯詳細信息

我創建了一個精靈測試,在其中渲染aprox 290精靈。

帶有1個精靈的每秒幀數約為80,而帶有288的每秒幀數仍約為30,問題在於,這些精靈會不時停止並開始運行,這顯然不是幀速率,因此任何人都不知道可能是什么原因造成的。這個? (請注意,它不是慢下來,而是平穩地運動了一會兒,然后一切都停止了幾分之一秒,然后又恢復了平穩)。

屏幕上只有一個精靈時也會發生這種情況-但只是每隔5秒就間歇地-我添加的精靈越多,它發生的次數就越多,但是幀頻永遠不會降到30 fps以下(我知道應該可以平滑運動),所以我只是想了解這可能是什么。

我的精靈是在自定義類之外創建的,但是僅創建了3個實際對象(背景,一個在屏幕上移動的精靈(以便我可以衡量平滑度))和288個精靈(實際上是重復使用的同一對象) )(以6批為單位呈現)。

謝謝你的幫助。

硬件是三星Galaxy Ace手機。

編輯好了,所以我按配料常規改變,現在我使每次通話24只小精靈(14個=調用336輛四輪摩托車+移動精靈+背景= 338個四邊形)和我讓周圍47 FPS,所以我在想,是什么引發除了GC以外,這種“生澀的”運動還是幀速率下降得太遠?

在此處輸入圖片說明

聽起來像垃圾收集器正在運行。 要驗證這一點,只需查看logcat ...抽動時刻是否與標記為“ dalvikvm”的行相關並以“ GC_”開頭?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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