libgdx是一个跨平台的2D/3D的游戏开发框架,它基于Apache License, Version 2.0协议,由Java/C/C++语言编写而成,其代码托管于Google Code中,对商业使用和非商业使用均免费。

AD:2013云计算架构师峰会课程资料下载

libgdx是一个跨平台的2D/3D的游戏开发框架,它基于Apache License, Version 2.0协议,由Java/C/C++语言编写而成,其代码托管于Google Code中,对商业使用和非商业使用均免费。

开源的游戏框架并不少见,但是libgdx的优势是相当明显的,主要是体现在以下几个方面:

1、极强的兼容性

libgdx兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。

2、高效性

Libgdx主要是用Java写的,其中也参杂了一些C/C++代码,这些代码是为了处理一些对性能要求很高的操作,比如物理引擎或者音频处理。作为用 户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。相比于其他android游戏引擎,libgdx的效率优势十分明显。

另外,libgdx还具备架构清晰,物理引擎(Box2D)的封装,拥有丰富的工具等特点。

libgdx的logo:

libgdx logo

libgdx的下载地址:http://code.google.com/p/libgdx/

首先下载最新的jar,我下载的是libgdx-0.9.2。

libgdx下载

新建一个Android项目,File -> New -> Project -> Android Project。我选的SDK是1.6的,最低选择应该是1.5。

新建一个文件夹libs(这个名字是固定的,不能随意改),将下载到的jar复制进去,android平台只需要复制gdx.jar和gdx-backend-android.jar。

增加引用,然后将armeabi和armeabi-v7a两个文件夹复制到libs文件夹中。

Android游戏引擎libgdx使用教程1:搭建libgdx环境

然后写个小程序测试一下环境有没有问题。

新建类HelloGameActivity,继承AndroidApplication类。

   
   
  1. package com.cnblogs.htynkn;     
  2. import com.badlogic.gdx.backends.android.AndroidApplication;     
  3. import android.os.Bundle;     
  4. public class HelloGameActivity extends AndroidApplication {     
  5. @Override     
  6. public void onCreate(Bundle savedInstanceState) {     
  7. super.onCreate(savedInstanceState);     
  8. initialize(new FirstGame(), false);     
  9. }     
  10. }   

initialize(new FirstGame(), false);就是启动游戏的关键,FirstGame是一个实现了ApplicationListener的类。代码如下:

   
   
  1. package com.cnblogs.htynkn;     
  2. import com.badlogic.gdx.ApplicationListener;     
  3. import com.badlogic.gdx.Gdx;     
  4. import com.badlogic.gdx.graphics.GL10;     
  5. import com.badlogic.gdx.graphics.g2d.SpriteBatch;     
  6. public class FirstGame implements ApplicationListener {     
  7. //绘图用的SpriteBatch     
  8. private SpriteBatch batch;     
  9. @Override     
  10. public void create() {     
  11. batch = new SpriteBatch(); //实例化     
  12. }     
  13. @Override     
  14. public void dispose() {     
  15. // TODO Auto-generated method stub     
  16. }     
  17. @Override     
  18. public void pause() {     
  19. // TODO Auto-generated method stub     
  20. }     
  21. @Override     
  22. public void render() {     
  23. Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //清屏     
  24. batch.begin();     
  25. batch.end();     
  26. }     
  27. @Override     
  28. public void resize(int width, int height) {     
  29. // TODO Auto-generated method stub     
  30. }     
  31. @Override     
  32. public void resume() {     
  33. // TODO Auto-generated method stub     
  34. }     
  35. }   

因为没有写实际的东西,所以效果是一个黑黑的框。

Android游戏引擎libgdx使用教程1:搭建libgdx环境

libgdx环境搭建就说到这里。

注意:如果仔细观察Logcat, 就会发现一个error:E/libEGL(382): couldn't load <libhgl.so> library (Cannot load library: load_library[984]: Library 'libhgl.so' not found)。
这个没什么关系,这是系统尝试加载硬件OpenGL驱动失败了,然后回到软件的处理方法上,不是缺陷或者错误。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐