libgdx官方网站 http://code.google.com/p/libgdx/
Android project setup(Android project设置)
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 andarmeabi-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 |