Libgdx是一款支持2D与3D游戏开发的游戏类库,兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。

logo:android 游戏架构 安卓游戏开发框架_jar

地址:http://code.google.com/p/libgdx/

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

android 游戏架构 安卓游戏开发框架_jar_02

新建一个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 游戏架构 安卓游戏开发框架_ide_03

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

新建类HelloGameActivity,继承AndroidApplication类。

1 package com.cnblogs.htynkn;
 2 
 3  
 4 
 5 import com.badlogic.gdx.backends.android.AndroidApplication;
 6 
 7  
 8 
 9 import android.os.Bundle;
10 
11  
12 
13 public class HelloGameActivity extends AndroidApplication {    
14 
15     @Override
16 
17     public void onCreate(Bundle savedInstanceState) { 
18 
19         super.onCreate(savedInstanceState); 
20 
21         initialize(new FirstGame(), false); 
22 
23     } 
24 
25 }
1 initialize(new FirstGame(), false);

就是启动游戏的关键,FirstGame是一个实现了ApplicationListener的类。

代码如下

1 package com.cnblogs.htynkn;
 2 
 3  
 4 
 5 import com.badlogic.gdx.ApplicationListener; 
 6 
 7 import com.badlogic.gdx.Gdx; 
 8 
 9 import com.badlogic.gdx.graphics.GL10; 
10 
11 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
12 
13  
14 
15 public class FirstGame implements ApplicationListener { 
16 
17     //绘图用的SpriteBatch 
18 
19     private SpriteBatch batch; 
20 
21     @Override
22 
23     public void create() { 
24 
25         batch = new SpriteBatch(); //实例化 
26 
27     }
28 
29  
30 
31     @Override
32 
33     public void dispose() { 
34 
35         // TODO Auto-generated method stub
36 
37  
38 
39     }
40 
41  
42 
43     @Override
44 
45     public void pause() { 
46 
47         // TODO Auto-generated method stub
48 
49  
50 
51     }
52 
53  
54 
55     @Override
56 
57     public void render() { 
58 
59         Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //清屏 
60 
61         batch.begin(); 
62 
63         batch.end(); 
64 
65     }
66 
67  
68 
69     @Override
70 
71     public void resize(int width, int height) { 
72 
73         // TODO Auto-generated method stub
74 
75  
76 
77     }
78 
79  
80 
81     @Override
82 
83     public void resume() { 
84 
85         // TODO Auto-generated method stub
86 
87  
88 
89     }
90 
91  
92 
93 }

因为没有写实际的东西,所以效果是一个黑黑的框。 android 游戏架构 安卓游戏开发框架_android 游戏架构_04

环境搭建就说到这里,下一篇是关于图片绘制的。

注意:

如果仔细观察Logcat,就会发现一个error:

E/libEGL(382): couldn't load <libhgl.so> library (Cannot load library: load_library[984]: Library 'libhgl.so' not found)

这个没什么关系,这是系统尝试加载硬件OpenGL驱动失败了,然后回到软件的处理方法上,不是缺陷或者错误。