• libgdx 学习笔记一 开发环境搭建


    本章内容讲述 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(直接点击出现如下图)

    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设置)

    1. 在Eclipse中创建一个新的 Java工程:File -> New -> Project -> Java Project。给他命名 (如:"gamename-desktop")然后点击finish.
    2. 到工程目录下创建一个名为libs的文件夹。下载nightly zip(注意这里需要使用不同的文件和上面Main project setup不一样)
    3. 在Eclipse中右键project->refresh(刷新).然后右键Properties -> Java Build Path -> Libraries -> Add JARs,
    4. 选择3个jars分别是: gdx-natives.jar(上图第三行),gdx-backend-lwjgl.jar(上图第四行),gdx-backend-lwjgl-natives.jar(上图第四行), 然后Add Jars单击OK。
    5. 点击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下配置

    1. 点击Source 选项卡, 点击Link Source, Browse, 在你的 Android project 选择"assets"单击OK.
    2. 特别主要文件名是"assets" 请一个字母一个字母看清楚 仔细点哦。
    3. 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
    第一章终于翻译完了,加入的自己的一些实践和理解,大家有问题的可以提问,我一般晚上回答。第一章内容就这么多,我很有压力啊,但是我会继续坚持下去的,希望各位多多支持给我点动力,谢谢啦!!
  • 相关阅读:
    记账依据
    会计凭证
    用友U8账套的建立
    如何建立一个账套
    tcxtreelist Properties的使用(TcxImageComboBoxProperties)
    前端:JS获取单击按钮单元格所在行的信息
    总结 React 组件的三种写法 及最佳实践
    Vue.js 学习示例
    CSS3初步
    操刀 requirejs,自己动手写一个
  • 原文地址:https://www.cnblogs.com/tianjian/p/2118977.html
Copyright © 2020-2023  润新知