zoukankan      html  css  js  c++  java
  • 4.2、Libgdx各个模块概览

    (原文:http://www.libgdx.cn/topic/34/4-2-libgdx%E5%90%84%E4%B8%AA%E6%A8%A1%E5%9D%97%E6%A6%82%E8%A7%88

    介绍
    libgdx集成了几个模块为构建典型的游戏架构每一步提供服务。

    • Input:提供了针对所有平台统一的模型和handler。支持键盘,触摸屏,传感器和鼠标。

    • Graphics:通过硬件提供的OpenGL ES接口实现对图像在屏幕的绘制。

    • Files:提供了简单的方法进行读写操作。支持所有平台。

    • Audio:声音的录制和回放。支持所有平台。

    • Networking:提供了进行网络操作的方法。比如,简单的HTTP get 和post 请求和TCP 服务器/客户端 socket 通信。

    通常一个简单的游戏架构可以通过如下实例调用libgdx的模块:
    1.png

    接下来介绍各个模块最常用的功能。

    模块

    Input
    Input模块检测每个平台上的不同的输入状态。它允许检测键盘,触摸屏和传感器的状态。在桌面环境下(windows或Linux等),触摸屏被鼠标替代,当然传感器也不能使用。
    它同样提供了基于Input模型的注册进行输入处理的方法,以此可以进行事件驱动。
    接下来的代码用户检测用户是否发生触摸事件(桌面平台是鼠标点击),如果是则获取当前坐标:
    if (Gdx.input.isTouched()) {
    System.out.println("Input occurred at x=" + Gdx.input.getX() + ", y=" + Gdx.input.getY());
    }

    Graphics
    Graphics模块对于GPU的通信进行抽象,提供了简单的方法来获取OpenGL ES封装的实例。
    这些功能可以在有些平台不能使用。
    Graphics模块同样提供了生成Pixmaps 和 Textures 的方法。
    比如,通过如下方法获取OpenGL API 2.0实例:
    GL20 gl = Gdx.graphics.getGL20 ()http://Gdx.graphics.getGL20GL20 ();
    这个方法返回一个实例,该实例可以绘制到屏幕上。如果设备不支持OpenGL ES 2.0,将返回null。
    接下来的代码将进行清屏操作,并将屏幕绘制成红色:
    gl.glClearColor(0.1f, 0.0f, 0.0f, 1);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    所有的这些操作通过接口实现,无须关心某个平台是不是支持这个功能。
    支持的OpenGL API版本:
    事实上,libgdx已经放弃了对OpenGL API 1.0的支持,这在官方英文wiki中没有说明。
    现在只支持OpenGL API 2.0和OpenGL API 3.0。

    Files
    Files模块通过统一的API对文件进行访问,与平台无关。这使得读写文件更加简单。因为平台的安全原因,文件写操作会面临一定的限制。
    Files模块最常用的功能就是载入游戏资源(图片和声音),写入游戏得分和游戏状态。
    接下来展示如何通项目/assets/textures目录获取一个Texture:
    Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));

    Audio
    Audio用于创建和回放声音,特别是简单的声音。同时可以通过API直接访问声音硬件设备。
    包含两种声音文件,音乐和音效。支持WAV,MP3 和 OGG 三种格式。
    音效可以被载入内存,在任何时候都可以回放。通常播放时长较短,被多次使用。比如爆炸声和枪声。
    音乐是指放置在SD卡或其它存储设备上的文件。播放时长较长。示例代码如下:

    Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", fileType.Internal));
    music.setVolume(0.5f);
    music.play();
    music.setLooping(true);

    www.libgdx.cn版权所有,如需转载,注明出处)

  • 相关阅读:
    基于Python的接口自动化-pymysql模块操作数据库
    基于Python的接口自动化-Requests模块
    基于Python的接口自动化-JSON模块的操作
    基于Python的接口自动化-读写配置文件
    基于Python的接口自动化-HTTP接口基本组成和网页构成
    JMeter接口压测和性能监测
    Linux之系统信息和性能监测
    background-origin和background-clip的区别
    $.ajax请求返回数据中status为200,回调的却是error?
    前端工程师必备的前端思维
  • 原文地址:https://www.cnblogs.com/hainange/p/6153515.html
Copyright © 2011-2022 走看看