2013-02-23 66 views
0

我正在做一個非常類似於龐的簡單遊戲。遊戲中的主要機制包括滑動屏幕以在背景上繪製圖像,然後在這兩件事情上繪製精靈。安卓繪製圖像性能

我遇到性能問題,以及林不知道爲什麼。我禁用了除繪製前景圖像之外的所有繪圖功能(在背景之上但在精靈之下)。這是造成這個問題的原因。

im使用前景圖像是一個30KB PNG。我在啓動時只加載一次圖像(RGB565格式),然後使用:

@Override 
public void drawImage(Image Image, int x, int y) { 
    canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null); 

在我的Draw方法中將圖像繪製到畫布。由於某種原因(運行在我的Nexus 7上),此操作非常緩慢。如果我使用drawRect方法,它會完美運行,所以它與我繪製導入圖像的方式有關。 drawBitmap是一個不好的方法來做到這一點?我是否需要爲這樣一個簡單的遊戲學習這個OpenGL的東西?

感謝您的任何建議。

回答

0

如果任何人有這個問題,我的情況可能是相關的,但可能不會。

我使用的是4MB wav文件作爲我的主題曲扉頁,忘了比賽開始時釋放內存。我現在得到流暢的fps!

0

當你的代碼段很短,我不知道你怎麼稱呼這種方法。

如果你要畫一個非常敏感的視圖,你應該使用SurfaceView繪製中的onDraw(帆布油畫)方法的內容。

既然你正在寫一個遊戲,乒乓球的位置多久更新一次?此更新是在AsyncTask還是Runnable中執行的?只有在更新了精靈的位置時,才能通過調用invalidate()來減少onDraw的過度調用。