初探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大功告成,第一步准备,第二步执行公共的渲染方法,第三步执行自定义的渲染方法,屏幕就绘制出来了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值