Libgdx是一款支持2D与3D游戏开发的游戏类库,兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统)与Android平台。
Libgdx由audio、files、graphics、math、physics、scenes、utils这些主要类库所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件(3D部分目前无组件),以及Libgdx内置工具类。
官方地址:http://code.google.com/p/libgdx/
开发环境搭建前,必须确定你的android SDK环境已经安装完毕。可以参加前面的笔记。
SDK开发框架:http://blog.csdn.net/zhujunwang/article/details/7866672
最新版的libgdx jar下载:http://libgdx.badlogicgames.com/nightlies/
我下载的是最新版本:libgdx-nightly-20120902 ,解压后目录如下
接着创建一个新的android项目,取名为LibgdxDemo,我选择的是2.3.3版本,最低版本可以选择1.5。接着把jar文件导入到项目。
首先新建一个文件夹libs(名字必须为libs,不可随意更改),然后复制jar。libs/gdx.jar、libs/gdx-backend-android.jar、libs/armeabi (directory)、libs/armeabi-v7a (directory)
创建一个Game类
package com.hanfeng.libgdx;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class Game implements ApplicationListener {
// 绘图工具
private SpriteBatch batch;
// 游戏精灵
private Sprite sprite;
// 图片解码,用来加载图片
private Texture texture;
@Override
public void create() {
// 构建SpriteBatch
batch = new SpriteBatch();
// 构建Texture,图像宽与高大小都必须为2的整数次幂,否则提示异常
// 在Android环境使用Libgdx的internal加载时必须文件必须位于assets目录下
texture = new Texture(Gdx.files.internal("basketball.png"));
// 以指定Texture构建Sprite
sprite = new Sprite(texture);
//加载到指定位置
sprite.setPosition(200, 280);
}
@Override
public void render() {
// 清屏
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// 初始化绘图
batch.begin();
// 绘制精灵到游戏屏幕
sprite.draw(batch);
// 绘图结束
batch.end();
}
@Override
public void resize(int arg0, int arg1) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
// 释放占用的资源
batch.dispose();
texture.dispose();
}
}
改写Activity类
package com.hanfeng.libgdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import android.os.Bundle;
public class AndroidGame extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initialize(new Game(), false);
}
}
程序运行结果如下图:
libgdxdemo源代码:libgdxdemo.7z
详情可以查看官方介绍:http://code.google.com/p/libgdx/wiki/ProjectSetup