libgdx的目录结构 以及常见接口

libgdx的目录结构还是比较清晰的。
backends  目录里面是各个平台的适配代码。
extensions 目录里面为gdx的扩展工具类
gdx 目录为gdx的源码
tests 测试代码
我们现在首先分析backends里面的android适配代码 : gdx-backend-android 目录。
进入src\com\badlogic\gdx\backends\android ,可以看到一系列适配的文件,有输入input
Music preferences Sound Touch GL Audio File Application  Net
这里看到需要的元素都做了适配。游戏基本分为三个要素:展示图片和声音,操作交互,存储。
此文件就这些了,有个AndroidLiveWallpaper是为了动态墙纸做的,我们做游戏不需要它。
下来我们来看下extensions 文件夹:
gdx-box2d box2d 适配java代码
gdx-bullet 子弹系列
gdx-controller 控制器,未看代码。
gdx-freetype 字库相关
gdx-jnigen 生成jni工具
gdx-setup 开发工具,未使用,都是手动完成工程生成。
gdx-tools 一些工具,tiledmappacker,生成地图,我一般使用三方工具 tiled完成。
hiero 点阵字制作
particleeditor粒子系统编辑器 ,我一般使用三方工具particleeditor.exe 完成
texturepacker 图片打包工具,我一般使用三方工具texturepacker.exe完成


下来我们来看下 gdx 文件夹:(核心代码)
JNI目录为gdx的本地代码
src为java端代码
我们继续查看src\com\esotericsoftware\tablelayout,这个是在table里面使用的。
com\badlogic\gdx 核心位置,gdx的实现代码都在这里了。
assets 目录:加载资源使用。
audio 声音处理
files 文件处理
graphics 图像相关
input 输入相关 手势在这里
Maps 地图相关tiled
math 数学计算相关
net 网络相关
scenes 屏幕控件元素,内容较多,关键
utils 相关通用接口
还有一些零散的文件在这里,目的是为android的适配,提供的接口类。


常用的类 以及接口:
Screen.java 实现一个屏幕,游戏开发使用一屏一屏来切换。
Stage 场景,一个屏幕里面添加几个场景,来支持游戏渲染。
Actor 演员在场景里面出现,使用action给演员添加动作。actions里面有一些常见动作
Group 继承演员,管理多个演员。一般在stage里面使用,我们不需要关注。
InputListener 场景stage或者演员actor需要处理输入设备,通过setInputProcessor设置一个输入处理。stage默认就实现了InputAdapter
Ui文件夹里面有一系列的常见控件。ImageTextButton Label
Texture 纹理,加载图片使用的接口。
TextureRegion 拿出一个区域。
TextureAtlas 纹理加载工具,批量的操作。
Animation 动画接口。
Batch SpriteBatch 为了使得效率加快,使用SpriteBatch来将多个刷屏一次写入GL
Sprite 比之 TextureRegion多了一个可以有颜色。
PolygonRegion 多边形
ParticleEffect 粒子系统使用
NinePatch 点9位图
BitmapFont 字体使用
GestureDetector 手势检测
TiledMap 加载地图 渲染地图的TiledMapRenderer
大杂项后面慢慢补充吧。


字体使用:
font = new BitmapFont(Gdx.files.internal("data/font.fnt"), false);
font.draw(batch, "loaded: " + manager.getProgress() + ", reloads: " + reloads, 0, 30);
TextureAtlas 使用:
atlas = new TextureAtlas(Gdx.files.internal("shoot.pack"));
sprite = atlas.createSprite("enemy3_down6");


定时器使用:
public void create () {
new Timer().scheduleTask(new Task() {
@Override
public void run () {
Gdx.app.log("TimerTest", "ping");
}
}, 0, 1);  // 0,1的意思为:0为等待0s开始,1为间隔时间为1s


}


点9资源:
NinePatch patch = new NinePatch(new Texture(Gdx.files.internal("knob.png")), 12, 12, 12, 12);
这里的12代表为上下左右缩放不变的边缘大小


Preferences使用:


Preferences prefs = Gdx.app.getPreferences(".test"); 获取配置
prefs.putBoolean("bool", true); //写入数据
prefs.flush(); // 提交数据,重要。

你可能感兴趣的:(android,源码分析,libgdx)