本文使用的libgdx是0.92版本,和现在的最新版可能有一些不一样的地方。全文内容仅供参考。
Libgdx是一款支持2D与3D游戏开发的游戏类库,兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。
地址:http://code.google.com/p/libgdx/
首先下载最新的jar,我下载的是libgdx-0.9.2。
新建一个Android项目,File -> New -> Project -> Android Project。我选的SDK是1.6的,最低选择应该是1.5.
新建一个文件夹libs(这个名字是固定的,不能随意改),将下载到的jar复制进去,android平台只需要复制gdx.jar和gdx-backend-android.jar。
增加引用,然后将armeabi和armeabi-v7a两个文件夹复制到libs文件夹中。
然后写个小东西测试一下环境有没有问题。
新建类HelloGameActivity,继承AndroidApplication类。
package com.cnblogs.htynkn; import com.badlogic.gdx.backends.android.AndroidApplication; import android.os.Bundle; public class HelloGameActivity extends AndroidApplication { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initialize(new FirstGame(), false); } }
initialize(new FirstGame(), false);
就是启动游戏的关键,FirstGame是一个实现了ApplicationListener的类。
代码如下
package com.cnblogs.htynkn; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class FirstGame implements ApplicationListener { //绘图用的SpriteBatch private SpriteBatch batch; @Override public void create() { batch = new SpriteBatch(); //实例化 } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //清屏 batch.begin(); batch.end(); } @Override public void resize(int width, int height) { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub } }
环境搭建就说到这里,下一篇是关于图片绘制的。
注意:
如果仔细观察Logcat,就会发现一个error:
E/libEGL(382): couldn't load <libhgl.so> library (Cannot load library: load_library[984]: Library 'libhgl.so' not found)
这个没什么关系,这是系统尝试加载硬件OpenGL驱动失败了,然后回到软件的处理方法上,不是缺陷或者错误。