libgdx作为上层为java,底层c和c++的游戏引擎。简直是优秀得一塌糊涂。 这个游戏框架最初只有1个人在维护,现在已经加入不少人了,越来越给力。 libgdx的架构 很清晰, 我们先从包的结构分析:
assets
代表资源包,用于资源加载等管理。
audio
音频包,游戏需要播放声音时用。
files
文件处理包,内部主要对象是FileHandle ,如果你用过Libgdx肯定对次很熟悉,libgdx加载纹理图片等都是通过此对象。
graphics
绘画相关,就是我们要把游戏中的控件或者角色 绘制出来,相关要用的。
里面包含 openGles 2d ,3d,egl, 纹理Texture,摄像机Camera ,顶点属性VertexAttribute等。
input
输入事件相关
maps
地图相关
maths
数学相关,里面有矩阵处理,射线,线段,圆 ,多边形,贝塞尔曲线,2维点Vector2,3维点Vector3等,还有 Intersector(判断各种图形的相交).
net
网络相关。即网络http请求,socket
scenes
一些封装好的场景对象,重要的就是 Stage舞台,Actor演员及其子类。另外还有Action及其子类,以实现帧动画。
utils
这个包非常多的对象, 很多有用的工具类。比如xml解析和 序列化。XmlReader and XmlWriter(android 的国际化工具我就用的poi和这个实现的 )。重写了list , map等适用于游戏的对象。 Array , ObjectMap ,压缩处理Lzma等等.
当然最外层的就是最重要的接口了。 eg: Application,Input,Files,Screen, Audio,等
我的Fantastic tank就是基于 screen实现的,今天暂时这样。下次说一些对象的用法。