2012-07-01 53 views
1

我目前正在開發一款遊戲,只使用2D圖形。從SurfaceView轉換到GLSurfaceView?

在遊戲中我廣泛使用android的SurfaceView來顯示我的圖形。 我聽說GLSurfaceView使用硬件加速的圖形,我可以提高我的應用程序的性能,而不是使用當前的SurfaceView

目前,我有一個課程延長SurfaceView,它更新和呈現遊戲狀態,當方法update()render()被我自己的線程類調用時,延伸Thread。 Thread基本上可以幫助我保持幾乎恆定的FPS。

現在的問題: 如何更改從SurfaceViewGLSurfaceView,並調用方法來更新和線程渲染的遊戲狀態,還是在FPS控制。我閱讀了OpenGL ES上的android文檔,我不太明白如何使用GLSurfaceView.Renderer

如果有人能解釋我怎麼能輕鬆地從SurfaceView切換到GLSurfaceView,那會非常有幫助!謝謝!

+0

我只需要知道GLSurfaveView.Renderer或其他類的哪些方法,我應該更新遊戲狀態,以及使用什麼方法來呈現狀態。我有很多可以複製粘貼的東西(可能還有一些),所以我不想再重新開始。 – udiboy1209

回答

1

顯示您的遊戲的類將延長GLSurfaceView。你的渲染班將執行Renderer。在您的Renderer課程中,您需要添加這些未實現的方法:onDrawFrame(),onSurfaceChanged(),and onSurfaceCreated()

希望這會有所幫助。

+0

我從android文檔中發現了很多東西。抱歉在我的回答中沒有提及它。所以你說我把我的'update()'代碼保存在擴展GLSurfaceView的類中,並將我的'render()'代碼移動到另一個擴展了Renderer的類中,並將它放在onDrawFrame()方法中。請澄清。並且我能夠從我的線程中控制該方法的執行嗎? – udiboy1209

+0

遊戲在onDrawFrame()方法中更新。你的GLSurfaceView基本上是一個空窗口。渲染器處理所有的遊戲邏輯。 – jessenave

+0

謝謝你的幫助! – udiboy1209