libgdx 环境搭建

标签: libgdx 环境 | 发表时间:2012-12-13 23:40 | 作者:sunboy_2050
出处:http://blog.csdn.net

一、 开发包下载

1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip    2012.11.12)

2) libgdx 主干源码下载: github tags



环境搭建

 1) 添加开发jar包

libgdx的android开发包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi 和 armeabi-v7a ( 区别

解压libgdx -x.x.x.zip 文件, 可以看到以下目录树:


开发libgdx时,把画蓝色横线的开发包拷贝到自己的Android项目libs目录下,效果图如下:



2) 添加源码jar包

开发过程中,可能需要链接查看libgdx源码,因此需要添加 gdx-backend-android-sources.jar 和 gdx-sources.jar 源码包

添加步骤: 点击libgdx开发jar包中的引用函数——》查看源码——》Attach Source... ——》 选择上图 gdx-backend-android-sources.jar 和 gdx-sources.jar 源码包




3) 在自己的项目myLibgdx,添加完开发包jar和源码包jar后,其效果如下:




简单示例

1) 新建Activity

在自己项目myLibgdx中, 新建一个MainActivity,继承于libgdx父类 AndroidApplication

public class MainActivity extends AndroidApplication {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initialize(new MyGame(), false);
	}
}


2) 自定义 MyGame 

上面 MainActivity 的 initialize() 中,使用了自定义的 MyGame 类,其实现 libgdx 父类接口 ApplicationListener , 详细定义如下:

public class MyGame implements ApplicationListener {
	private SpriteBatch batch;		// 初始化游戏精灵
	private BitmapFont bf;			// 初始化字体绘制
	
	@Override
	public void create() {					// 创建
		batch = new SpriteBatch();
		bf = new BitmapFont();
		bf.setColor(Color.RED);
		bf.setScale(1.0f);
	}

	@Override
	public void render() {					// 渲染
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		Gdx.gl.glClearColor(0, 0, 0, 0);
		batch.begin();
		bf.draw(batch, "hello libgdx", Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
		batch.end();		
	}

	@Override
	public void resize(int arg0, int arg1) {	// 布局调整
	}

	@Override
	public void pause() {				// 暂停
	}

	@Override
	public void resume() {				// 恢复
	}

	@Override
	public void dispose() {				// 销毁
		bf.dispose();
		batch.dispose();
	}
}
运行结果:


源码下载 



libgdx生命周期

通过上面的简单示例,libgdx 运行流程已全部展示出来了,具体流程如下:

1) 主MainActivity,继承于libgdx父类 AndroidApplication, 而 AndroidApplication 又继承Android 基本的Activity并实现了libgdx自定义的接口类 Application, 关系如下:

public class AndroidApplication extends Activity implements Application 


2) 自定义 MyGame,实现 libgdx 父类接口 ApplicationListener, 而ApplicationListener 接口如下:

public class MyGame implements ApplicationListener {
   public void create () {
   }

   public void resize (int width, int height) { 
   }

   public void render () {        
   }

   public void pause () { 
   }

   public void resume () {
   }

   public void dispose () { 
   }
}


逻辑流程如下:



逻辑流程的功能描述:

方法名

功能描述

create()

应用创建时,被调用且只调用一次

resize(int width, int height)

游戏屏幕每次重置大小且不在暂停状态时调用此方法,在create()后仅调用一次,参数是屏幕被重置后的新宽度和高度(像素)

render()

每次渲染发生时,游戏循环调用此方法。游戏逻辑更新常在此方法中,即循环刷新绘制游戏的逻辑画面

pause()

在android中当Home键按下或重新进入程序时调用,这是一个保存游戏状态的好时刻,resume()不一定会被调用

resume()

这个方法仅在android中调用,当应用从pause状态重新获取焦点时resume

dispose()

当应用销毁destroyed时,调用此方法,在pause()之后

 


libgdx 应用开发的逻辑流程图:




五、 总结

从上文的示例和流程图可以看出,libgdx 游戏开发步骤如下:

1) AndriodApplication,继承自Android 的基类 Activity, 起到了一个Activity的作用,但是我们并不在这个“Activity”中做太多的工作,当然可以做一些保存Context上下文之类的工作,如 onSaveInstanceState(), onRestoreInstanceState()等

2) libgdx开发中实际的显示工作,是交给一个实现了ApplicationListener接口的类来完成,它有所需要的所有功能:创建,渲染(刷新),暂停,恢复,销毁等。所以实际的情况是,我们在游戏中的大部分绘图工作都是放在这个页面进行的



参考推荐:

libgdx 概述

The Life-Cycle(libgdx wiki)

libgdx游戏引擎教程 ApplicationListener

android游戏开发框架libgdx 开发框架总观


作者:sunboy_2050 发表于2012-12-13 23:40:42 原文链接
阅读:54 评论:0 查看评论

相关 [libgdx 环境] 推荐:

libgdx 环境搭建

- - CSDN博客推荐文章
1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip    2012.11.12). 2) libgdx 主干源码下载: github tags. libgdx的android开发包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi 和 armeabi-v7a ( 区别).

libgdx 概述

- - CSDN博客推荐文章
libgdx 是一个跨平台的2D/3D的游戏开发框架,由Java/C/C++语言编写而成,基于  Apache License 2.0 协议,对商业使用和非商业使用均免费,代码托管于 github. libgdx兼容大多数平台,采用标准JavaSE实现,能运行在Mac、Linux、Windows等系统,与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥).

(libgdx小结)图形绘制

- - CSDN博客推荐文章
    在这一小节的图形绘制中所涉及到的类主要有4个:Texture 、TextureRegion、SpriteBatch、Sprite. Texture:图片的容器. TextureRegion:用于截取Texture. SpriteBatch:相当于画笔. Sprite:其实就是加强版的TextureRegion和SpriteBatch.

[译]Libgdx Developer's Guide(Libgdx开发者手册)-1

- - bob007abc的专栏
Libgdx 是一个跨平台的游戏对象开发框架. 目前支持的开发平台有:Windows, Linux, Mac OS X, Android, iOS 和 HTML5. Libgdx 允许一次编码无需修改即可发布到多个平台. 与其等待最新的修改被布置至设备或者编译为HTML5语言,你可以在桌面环境开发你的应用,主要受益于一个极快的迭代周期.

libGDX 1.0 正式发布,Android 游戏引擎

- - 开源中国社区最新新闻
libGDX 1.0 发布,此版本现已提供 下载,主要更新内容如下:. 基于 Gradle 项目的安装 ,不需要下载二进制包,不需要更多的 jars,支持所有平台的简单打包. 所有文档 的格式都是视频和 Wiki 文章. OpenGL ES 1.x 的支持,支持 OpenGL ES 3.0. 移除了大量 Android 后端的集群,要求最低 Android 版本是.

如何使用libgdx编写一个简单的游戏(一)

- - 博客园_首页
写这几篇文章主要是看了这个系列的文章: http://www.raywenderlich.com/352/how-to-make-a-simple-iphone-game-with-cocos2d-tutorial. 这个系列主要讲述了如何使用Cocos2D编写简单的游戏. 稍微读读感觉不错,所以想写个libgdx版本的.

如何使用libgdx编写一个简单的游戏(二)— 完善

- - 博客园_首页
上一篇介绍游戏雏形的编写,这一篇将完善部分逻辑并添加更多效果. 例子代码在 https://github.com/htynkn/DartsShaSha,如有需要请自行在tag中下载对应部分. 现在的飞镖可以旋转可以飞行了,但是有一个问题却没有解决. 首先飞镖的速度,如果用户触摸位置很靠近左侧,那么飞镖的速度就很慢了.

Hadoop环境搭建

- - 统计之都
Author:张丹(Conan). @晒粉丝 http://www.fens.me. @每日中国天气 http://apps.weibo.com/chinaweatherapp. RHadoop实践系列文章. RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析. Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现.

jbpm环境搭建

- - 编程语言 - ITeye博客
   使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现.    工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递.   jbpm 即java Business Process Management,是基于java的业务流程管理系统引擎底层基于Active Diagram模型.

solr4.0环境搭建

- - CSDN博客推荐文章
因近期想搞个知识库,所以选择solr,现在最新的solr是4.0,所以用solr4.0. 中文分词器 :ik-analyzer,mmseg4j. 安装:目前mmseg4j的版本是mmseg4j-1.9.0.v20120712-SNAPSHOT,经过测试,发现这个版本有bug:. 由于solr4.0对其中的有些类与方法做了调整,所以还是等待mmseg4j新版本修复吧.