网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
libgdx总结

Libgdx学习记录 Libgdx学习总结 1.libgdx画图都是使用OpenGL,所以效率较高,屏蔽了View这一层,根据用户选择使用的OpenGl版本不同,自动生成View,分别为支持OpenGL 1.0 和OpenGl 2.0,其中OpenGL 1.0使用的View为surfaceView 。OpenGL2.0使用的View为GLSurfaceView。 2.关于View,surfaceView,GLSurfaceView的区别: 首先继承关系: surfaceView extends View GLSurfaceView extends surfaceView View画图在UI线程中使用onDraw()绘制,并且,上层规定刷新频率。surfaceView 画图不在调用onDraw(),必须程序猿另起一个线程(注意:不再是在UI线程中绘制了,自己控制刷新频率)。所以,他们只是绘制机制不同,并不能说使用哪个的绘制效率会更高。 View如果在onDraw中进行了数据操作,可能就会出现卡的情况。 PS:在QQWaveActivity中,进入APP时候在UI线程读取应用列表较耗时,导致开始画图时会卡一下。优化方法:另开线程读取应用列表以及图标,缓存数据。 至于GLSurfaceView,我认为与前者的不同,应该是很在应用场合上,适用于绘制三维图形,适合使用OpenGL 2.0,使用场合总结为; View: 不复杂的二维图形; surfaceView: 动态的二维的页面,有较多动画效果,配合OpenGL1.0; GLSurfaceView:三维立体图形,配合OpenGL2.0。 3.由于Libgdx较为详细的文档比较少,可以参考的资料是在官网: /p/libgdx/ 以及一些博文中。 个人学习的方法是通过官方的测试DEMO,不懂的地方查看资料,然后直接看内部源码,认为看源码也是最直接的方法。 4.Libgdx其实很多东西都是我们可以自己实现的,但是由于对OpenGL不熟,有一定困难,但是不应该对它产生畏惧心理,我认为它真正最有价值的部分是在Box2d中。 一、说明 本文档主要记录本人的一些学习过程,以及个人的一些看法,不会详细记录每个类的用法以及API,只会列出大概的写法。目的是在与分享学习的一些经验,而不是通过这个文档学会libgdx。 在分享的同时,会附上相应的DEMO效果。DEMO的源码是在gdx-test,支持在PC上直接运行。以Java Application的方式运行com.badlogic.gdx.helloworld.MyTestDeskTop.java文件,就能运行相应的DEMO,在PC上查看其效果。MyTestDeskTop.java如下: 修改红框框住的部分,改成我们想要执行的DEMO文件,就能运行不同的DEMO。 二、Libgdx框架介绍 1、特点 兼容性良好:在终端与PC上都能运行; 效率高: 底层画图全部使用OpenGL 实现; 模块化: 有audio、files、graphics、math、physics、scenes、utils模块,封装了Box2d; 丰富的工具: Particle editor[5](粒子编辑器),Hiero bitmap font generator[6](文字生成工具),Texture packer[7](图片合并工具),TWL布局编辑器; 图像资源问题: 只支持png、jpg、bmp,对图片分辨率有限制。 2、架构 首先,是Libgdx的架构图: 从图中可以发现,libgdx起到了一个类似于中间件一样的功能,它屏蔽了JVM与Android系统之间的差异,开发出来的程序能同时在PC端以及Android系统上运行。最重要的是:它封装了绘图、音频等模块。 附上说明文档中的程序安装方法: /p/libgdx/wiki/ProjectSetup 说明文档中推荐的工程创建方法是,两个工程,一个Java project,一个Android project,这两个工程,通过使用不同方法调用同一个类,实现在PC上与Android系统上运行我们的代码,demo中分别是使用HelloWorldDesktop.java 调用 HelloWorld 实现PC端运行,HelloWorldAndroid 调用HelloWorld在Android系统上运行。如图: 现在,我只创建一个Android Project,在不创建Java Project的情况下想要使用libgdx,我是这样做的,如图: 这样,同样能运行。 说这个,是想说明我对libgdx的认识: Libgdx不是什么系统框架,而是一些已经封装好的工具类,同时因为它是开源的,因此我们可以在它的基础上做

文档评论(0)

cbf96793 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档