您的位置:首页 > 其它

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

2014-05-17 15:07 120 查看
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(); // 提交数据,重要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: