zoukankan      html  css  js  c++  java
  • Libgdx 开发指南(1) 应用框架

    应用框架

    模块

    Libgdx包含五个核心接口与操作系统交互,各自实现了如下接口:

    • Application:运行应用,向client通知应用层事件,例如窗口大小的改变(window resizing)。提供log功能与关于诸如内存使用情况的查询的方法。
    • Files:访问运行平台的文件系统。提供不同平台下文件访问的抽象,不与JAVA的文件类交互。
    • Input:向client通知用户输入,例如键鼠操作、触摸或加速度传感器事件。支持轮询检测和时间驱动的处理方式。
    • Net:提供跨平台的通过HTTP/HTTPS协议访问资源的方式,以及创建服务器与客户端的TCP连接。
    • Audio:提供播放声音与音乐流的方式,以及直接访问PCM音频输入输出设备。
    • Graphics:封装OpenGL ES 2.0的功能,允许查询/设置视频模式与类似的东西。

    启动类(Starter Classes)

    这是需要写的唯一平台相关的代码,称为starter classes。对每个目标平台,仅需一小段代码即可实例化一个应用接口的具体实现。例如对于Desktop平台,看起来会像是这样:(使用Lwjgl后端)

    public class DesktopStarter {
       public static void main(String[] argv) {
          LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
          new LwjglApplication(new MyGame(), config);
       }
    }

    对Android平台,会是这样:

    public class AndroidStarter extends AndroidApplication {
       public void onCreate(Bundle bundle) {
          super.onCreate(bundle);
          AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
          initialize(new MyGame(), config);
       }
    }

    这两个类通常存在于单独的工程中,例如一个Desktop工程和一个Android工程。

    而应用的实际代码写在实现了 ApplicationListener 接口的类中(在上面例子中的 MyGame )。这个类的实例被传入各个平台的应用后端实现的初始化方法中(如上)。应用会在合适的时机调用 ApplicationListener 的方法。

    访问模块

    之前提到的模块可以通过Gdx类的静态字段来访问。这本质上是一系列的全局变量,可以用来方便地访问libgdx的任意模块。虽然看起来是比较糟糕的代码风格,但我们还是决定这么使用,因为这样可以避免频繁地把常用的东西传来传去的。何况到处都有这些东西。

    例如,为了访问音频模块,可以简单地这么写:

    // creates a new AudioDevice to which 16-bit PCM samples can be written
    AudioDevice audioDevice = Gdx.audio.newAudioDevice(44100, false);

     Gdx.audio 是对后端实现的一个引用,它在应用启动时就被初始化了。其他模块也是用同样的方式访问的,例如 Gdx.app 用来获得Application本身, Gdx.files 用来访问文件等等。

  • 相关阅读:
    给XML文件定义DTD
    详探TextRange对象用execCommand()执行命令
    获取屏幕,浏览器,网页高度宽度
    花点时间搞清top、postop、scrolltop、scrollHeight、offsetHeight
    DataView数据组件
    回调实现无刷新级联下拉框(.net)
    ASP.NET的简单数据绑定
    详探TextRange对象查找与选择
    方维系统常用的jquery库以及各个库的含义
    方维购物分享系统 给店铺品牌加喜欢收藏的功能
  • 原文地址:https://www.cnblogs.com/sunshy/p/3641922.html
Copyright © 2011-2022 走看看