初探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大功告成,第一步准备,第二步执行公共的渲染方法,第三步执行自定义的渲染方法,屏幕就绘制出来了。

你可能感兴趣的:(Lgame)