初探Lgame

       最近在研究引擎,發現Lgame實現了很多種類型遊戲,決定對他的代碼進行研究和整理。以前基於android的開發都是通過API提供的組件完成的,對於繪圖方面是一片空白,只能一步一步補充相關知識來理解這個引擎實現的原理,如果有這方面愛好的同仁歡迎通過博客一起學習和提高。
       大體看了一下Lgame的程序結構,整個程序由於未用接口方式實現代理模式,理解起來比較糾結。其實他使用了android提供GLSurfaceView進行渲染,如果對這塊不太熟悉的朋友可以查看"SurfaceView"、“GLSurfaceView說明”。瞭解了這些我們再看一下程序結構:
       LGameAndroid2DActivity是繼承了Activity的入口,包含了LGameAndroid2DView的渲染器,對他進行渲染的正是GLSurfaceView,作爲LGameAndroid2DView的成員變量surfaceView加載到LGameAndroid2DActivity的視圖中。
       LProcess中包含了實際的繪製信息和聲音信息:其中的currentControl成員變量正是需要繪製的當前屏;emulatorButtons爲模擬鍵盤;AssetsSoundManager、PlaySoundManager是聲音管理器。
好了,程序開始執行:
       第一步:LGameAndroid2DActivity進行初始化initialization(),產生了LGameAndroid2DView的渲染器,並把對他進行渲染動作的GLSurfaceView加入Activity視圖中。
       第二步:GLSurfaceView的渲染線程啓動,循環調用LGameAndroid2DView的onDrawFrame()方法,onDrawFrame()方法中對LProcess的當前屏(Screen)和模擬鍵盤進行渲染,調用currentControl的createUI()方法。
       第三步:createUI()中會調用sprites.createUI(g)、desktop.createUI(g)以及自身的draw(g),自定義的圖像繪製過程就放入Screen子類實現的draw(g)中。
       OK大功告成,第一步準備,第二步執行公共的渲染方法,第三步執行自定義的渲染方法,屏幕就繪製出來了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章