本章内容讲述 libgdx 开发环境。怎么配置eclipse 用来开发,并且在桌面和android中运行libgdx applications
注:文章就是根据libgdx官方文档翻译或加入自己的理解 libgdx官方网站 http://code.google.com/p/libgdx
首先跟大家说说libgdx 是一个基于java的引擎,特别针对游戏开发。但他并不局限于android,他也能用于桌面应用或j2se,但在android领域应用的最为广泛
相信大家应该研究或使用过Rokon了把,它号称Cocos2d-iPhone引擎的Android版,但是由于作者已经不更新了,而且作者也极力推荐libgdx。我自己也看了
下相关的资料。相信此款引擎是以后android游戏开发方面的主流。接下来开始讲解具体配置步骤。
Main project setup(Main project设置)
1.在Eclipse中创建一个新的java project:Flie->New->Project->Java Project.给它命名然后点击finish。
2.找到工程文件夹,并在工程文件系统中创建一个名为libs的文件夹。下载nightly zip(直接点击出现如下图)
我是在2011年7月27日下载的,可能各位下载的时候有稍许不同 ,大概知道个流程就行了。直接点击图片中的libgdx-night-20110727.zip就下载了
虽然是国外的网站,但下载速度还不错!然后解压后。文件夹中的目录是这样子的,大家稍微看下,接下来几个地方都要用到。
3
3.在Eclipse中,你的工程文件右键点击Refresh(刷新),然后右键依次点击 Properties -> Java Build Path -> Libraries -> Add JARs, 选择gdx.jar
(注意看上图第第二行第一个既是) 然后点击 OK.
4.在gdx.jar文件下,双击"Source attachment",点击Workspace,选择gdx-sources.jar(看上图第三行从右向有数第2个) 然后点击OK
5.点击Order and Export 选项卡,选择gdx.jar然后点击OK。(这里我终于弄明白了 原文是 check the gdx.jar and click OK 这里check的意思是打勾,我开始还以为是检查呢)
注意:步骤5使用gdx.jar一个传递相关性。这意味着projects依靠main project也将有gdx.jar在它们的类路径中。然而这不能作为android工程来工作
Desktop project setup(Desktop project设置)
- 在Eclipse中创建一个新的 Java工程:File -> New -> Project -> Java Project。给他命名 (如:"gamename-desktop")然后点击finish.
- 到工程目录下创建一个名为libs的文件夹。下载nightly zip(注意这里需要使用不同的文件和上面Main project setup不一样)
- 在Eclipse中右键project->refresh(刷新).然后右键Properties -> Java Build Path -> Libraries -> Add JARs,
- 选择3个jars分别是: gdx-natives.jar(上图第三行),gdx-backend-lwjgl.jar(上图第四行),gdx-backend-lwjgl-natives.jar(上图第四行), 然后Add Jars单击OK。
- 点击Projects 选项卡。点击 Add,选择(打勾)我们的 project然后点击OK。
Android project setup(Android project设置)
在看一下步骤之前,请确认你的android SDK已经装备 并且可以运行android 程序
1.在Eclipse中创建一个新的Android project :: File -> New -> Project -> Android Project。并命名(如:"gamename-android")。选择目标(target) SDK,
这里官方文章上说是选择的"Android 1.5"。大家可以根据实际情况选择。包名(package name)如("com.jy")。在"Create Activity"输入"AndroidGame".单击finish.
2.到工程目录下创建一个名为libs的文件夹。下载nightly zip。这里需要3个文件:gdx-backend-android.jar (上图第二行),armeabi ,armeabi-v7a
特别需要注意armeabi and armeabi-v7a这2个文件,不明白的同学可以baidu google 我上网找的转载一下,大家可以参考
转载:Libgdx的图像加载处理(以及部分渲染),音频播放和自带的Box2D封装皆通过JNI方式实现,因此必须在libs文件夹下添加armeabi(或高版本Android系统支持的armeabi-v7a)文件夹以及相关so文件Android版Libgdx才能正常运行。
3.Eclipse中,右键project->refresh(刷新).然后右键 Properties -> Java Build Path -> Libraries -> Add JARs 选择gdx-backend-android.jar然后点击OK
(这里弹出的是package explorer 你可能找不到文件,看来官方的东西有时候还真要实践下,一般大家下载的nightly zip是随意存放的,所以这里我们可以选Add External JARs而不是Add JARs)
这里要注意下虽然我们需要3个文件:gdx-backend-android.jar ,rmeabi ,armeabi-v7a 但是rmeabi ,armeabi-v7a 是不用ADD JARS的因为他不是jars
以防万一可以放到工程目录下
4.点击 Add JARs(或者Add External JARs) ,在main project 下选择gdx.jar然后点击OK
5.点击Projects 选项卡。点击 Add,选择(打勾)我们的 project然后点击OK(我发现我这里别的工程都能选 唯独这个工程选不了悲剧)
注意事项:文件夹命令一定要注意为 "libs",因为命名约定已经被我们由android Eclipse 插件强制约束了(原文是这样的 这里我怕翻译错误误导大家(a naming convention forced on us by the Android Eclipse plugin.)
Asset folder setup(Asset文件夹设置)
android project中有一个assets的文件夹。系统其实是自动创建的,(如果没有这个文件的同学可以建一个名字要一样就行assets。一些资源可以放在这里,我知道这里大家要说了
那res是干嘛的,为何还要assets。这个篇幅有限,而且资料一大把我就不细说了 ,想知道的同学可以去搜下。不要偷懒哦,学习是不能偷懒的)。这是个问题,因为这些相同的文件必须是可用的桌面应用程序。而不是保持全部文件的2个副本(原文:Rather than maintain two copies of all the files)。这桌面程序可以在Android project中找到assets下配置
- 点击Source 选项卡, 点击Link Source, Browse, 在你的 Android project 选择"assets"单击OK.
- 特别主要文件名是"assets" 请一个字母一个字母看清楚 仔细点哦。
- Specify "assets" for the folder name and click Finish then OK.
注意事项:如果你的桌面和android projects 是同一个父类文件夹。你可以使用“PARENT-1-PROJECT_LOC/gamename-android/assets”作为本地的linked assets文件夹
你的android project名字是“gamename-android”。如果你是团队开发,这比硬编码路径更好
Creating a game(创建一个游戏)
在你的工程中, 创建一个新的class: 右键project-> New -> Class. 名字为"Game" 包名(eg, "com.jy"). 然后在Interfaces的右边, 点击 Add, 选择 ApplicationListener(只要输入app就看到了), 然后点击finish. 下面是代码:
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 ()
{ }
}
这些方法允许你设置成你的游戏。里面是没有内容的。这是一个简单的空白的屏幕。我们把这个简单的游戏运行之前,做一些更有趣的事情
Running the game on the desktop(运行桌面游戏)
右键左面工程-> New -> Class.名字DesktopGame 包名 (eg, "com.jy"). 点击 OK.下面是代码:
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
public class DesktopGame {
public static void main (String[] args)
{
new LwjglApplication(new Game(), "Game", 480, 320, false);
}
}
此代码创建一个LwjglApplication,给这游戏的一个实例,, 一个标题, 还有尺寸. "false"代表我们不使用 OpenGL ES 2.0 (而使用1.0/1.1).
运行这个游戏, 右键the project -> Debug As -> Java Application. 你应该得到一个标题为“游戏”的黑色窗口。
Running the game on Android(运行android 游戏)
在android 工程中打开一个AndroidGame class 他是我们前面创建的。输入下面代码:
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);
}
}
这段代码是android activity 初始化调用,注意使用Game可以会报错因为libs中有com.badlogic.gdx.Game;这个和Game名字一样 所以用MyGame代替也行的,但记住MyGame implements ApplicationListener
通过一个游戏的实例. 这false的意思是不使用OpenGL ES 2.0. 运行android 游戏。project -> Debug As -> Android Application 屏幕会变成黑色
因为游戏中没有什么内容. 如果运行程序发现错误, 请参考Logcat view:方法为Window -> Show View -> Other -> Android -> Logcat.
Updating libgdx(更新libgdx)
有时候需要更新到最新版libgdx. 你可以这样做, 下载最新版的 nightly zip 然后更新这些文件
Project | Files |
main | libs/gdx.jar libs/gdx-sources.jar |
Android | libs/gdx-backend-android.jar libs/armeabi (directory) libs/armeabi-v7a (directory) |
desktop | libs/gdx-natives.jar libs/gdx-backend-lwjgl.jar libs/gdx-backend-lwjgl-natives.jar |
第一章终于翻译完了,加入的自己的一些实践和理解,大家有问题的可以提问,我一般晚上回答。第一章内容就这么多,我很有压力啊,但是我会继续坚持下去的,希望各位多多支持给我点动力,谢谢啦!!