libGdx 是一个开源的 Android 游戏引擎。我也刚开始使用不久,个人觉得这个引擎还是比较轻量级的。之所以接触这个引擎呢,是因为 Java 课的期末项目是一个 Android 程序,我选择用这个引擎写一个华容道游戏,很简单吧。libGdx 有一个优点,就是可以在 PC 上模拟游戏的运行,不需要 Android 模拟器。用过 Android 模拟器的都知道那是慢得……

首先,至少需要一个 Eclipse… 如果想生成 Android 的程序,也就是 apk 文件,那么还需要装 Android SDK.

然后,从 libGdx 的官方网站下载最新版的 libGdx. 目前最新版是 0.9.2 . 具体地说,就是去那个页面把 libgdx-0.9.2.zip 这个文件下下来。然后解压待用。

现在插一段有关 libGdx 工程的结构的介绍。首先,一般的 libGdx 项目有 3 个工程:

  1. 主工程(Main project):主要把游戏代码写在里面;
  2. 桌面游戏工程(Desktop project):桌面版的游戏执行代码;
  3. Android 游戏工程(Android project):Android 版的游戏执行代码。

其中主要的代码量都在主工程中,而桌面和 Android 的工程下,代码只有一点点。

在 Eclipse 中建立主工程

工程的类型就是一般的 Java Project 就可以了,工程的名字假设叫 LibGdxTest(当然也可以是其它)。然后跑到工程目录里,新建一个叫 libs 的文件夹。然后,复制刚才下载的那个压缩包里的 gdx.jargdx-sources.jarlibs 文件夹下。跑回去刷新工程

再在工程属性里把这个库添加进去。方法是,在工程上点击右键,点 Properties, 点 Java Build Path, 点 Libraries 选项卡,再点 Add JARs, 把 gdx.jar 加入。如图:

Eclipse 中添加 gdx 库的方法

Eclipse 中添加 gdx 库的方法

然后把源 gdx-sources.jar 附加在这个库上,方法是在刚才添加的 gdx.jar 下,找到 Source attachment, 双击之。然后选择 Workspace…, 然后选择 gdx-sources.jar 就可以了。如图:

Eclipse 中给 gdx 库附加源的方法

Eclipse 中给 gdx 库附加源的方法

再到 Order and Export 标签(就在 Libraries 标签旁边)下,把 gdx.jar 勾上,确定就好了。

桌面工程的配置

创建一个 Java 工程,工程的名字假设叫 LibGdxTestDesktop(当然也可以起其它名字)。然后还是在工程文件夹下添加一个 libs 文件夹,然后把下载来的那个压缩包里的 gdx-natives.jar, gdx-backend-lwjgl.jargdx-backend-lwjgl-natives.jar 放到 libs 文件夹下。记得要刷新。

还是用刚才的方法,去 Properties » Java Build Path » Libraries » Add JARs, 然后把上面的三个 jar 文件都选择上。

然后点击 Projects 标签(也是在 Libraries 标签的旁边),把主工程添加进去(在本例中主工程的名字叫 LibGdxTest),然后确定就可以了。如图:

Eclipse 中将主工程添加到桌面工程中的方法

Eclipse 中将主工程添加到桌面工程中的方法

然后桌面工程的配置也完了。

LibGdx 的 Android 工程的配置

新建一个 Android 工程,工程的名称假设叫 LibGdxTestAndroid(当然你也可以用其它的名字)。SDK 版本号记得选 Android 1.5 就行,还有,在 Android 工程创建向导中,会询问你主 Activity 叫什么名字,这个例子里我们给它叫 AndroidGame 就好了,当然这个名字随你。

还是到工程目录下创建一个 libs 文件夹,然后把 gdx-backend-android.jar, armeabiarmeabi-v7a 复制到 libs 文件夹下。注意 armeabiarmeabi-v7a 这两个是文件夹。然后记得在工程里刷新。

为 Android 工程加上 gdx-backend-android.jar 这个库,方法上面也说过了,去 Properties » Java Build Path » Libraries » Add JARs.

然后再为 Android 工程加上 gdx.jar 这个库,你应该能想起来似乎这个库是在主工程里加过的,所以你不用复制一遍,只需要在添加的时候选择主工程下的 libs 就可以了。

再然后到 Projects 选项卡里把主工程加进来,这个操作在桌面工程配置里也执行过。

资源文件夹的路径配置

其实在 Android 工程下有一个资源文件夹,名叫 assets. 我们通常会把这个文件夹与桌面工程共享,这样我们就不用把同样的东西复制一遍了。

共享的方法是,打开桌面工程的属性(Properties)对话框,选择 Java Build Path, 选择 Source 标签,然后点 Link Source. 通常我们的 Android 工程和桌面工程的文件夹会在同一个工作区、同一个文件夹下,所以,我们可以在 Linked folder location 里写上 PARENT-1-PROJECT_LOC/LibGdxTestAndroid/assets , 然后 Folder name 写上 assets . 如图:

Eclipse 中为桌面项目链接 Android 项目的资源文件夹

Eclipse 中为桌面项目链接 Android 项目的资源文件夹

至此,整个项目就已经配置好了。接下来要做的是……

LibGdx 的 Hello World

首先是给主工程创建一个游戏类,起名为 Game 就好:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import com.badlogic.gdx.ApplicationListener;
public class Game implements ApplicationListener {
    public void create () {
    }
    public void render () {
    }
    public void resize (int width, int height) {
    }
    public void pause () {
    }
    public void resume () {
    }
    public void dispose () {
    }
}

然后在桌面工程新建一个类,叫 DesktopGame, 内容如下:

1
2
3
4
5
6
7
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
public class DesktopGame {
    public static void main (String[] args) {
        new LwjglApplication(new Game(), "Game", 480, 320, false);
    }
}

在 Android 工程里,原来已经生成了一个 AndroidGame 的 Activity, 把里面的代码修改一下,大概修改成这样:

1
2
3
4
5
6
7
8
import com.badlogic.gdx.backends.android.AndroidApplication;
public class AndroidGame extends AndroidApplication {
    public void onCreate (android.os.Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initialize(new Game(), false);
    }
}

其实上面的代码我是从官网的 Wiki 页面上弄来的……这样之后就可以运行 DesktopGame 或者 AndroidGame 了,不过目前显示的只是黑屏,因为什么也没写……不过工程的配置也应该已经完啦。

原创文章,转载请注明来源:http://euyuil.com/2982/android-game-engine-libgdx-config/