android游戏开发框架libgdx的使用(一)--环境搭建

来源:互联网 发布:淘宝货源数据包 编辑:程序博客网 时间:2024/05/19 12:26

转自:http://www.apkbus.com/forum.php?mod=viewthread&tid=19745&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline

 

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

logo:1.png

 

2012-1-16 22:24 上传
下载附件(5.65 KB)

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

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

2.jpg

 

2012-1-16 22:24 上传
下载附件(49.84 KB)

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

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

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

3.jpg

 

2012-1-16 22:24 上传
下载附件(46.63 KB)

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

新建类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. }
复制代码
  1. 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. }
复制代码

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

2012-1-16 22:24 上传
下载附件(14.37 KB)



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