(原版的: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 server/client socket 通信。

通常一个简单的游戏架构能够通过例如以下实例调用libgdx的模块:

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

模块

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版权所有所有,如需转载,注明出处)

版权声明:本文博客原创文章,博客,未经同意,不得转载。

4.2、Libgdx每个模块概述的更多相关文章

  1. XAF-通知模块概述 web+win

    通知模块概述 1.支持 WinForms和ASP.NET程序. 2.支持调度模块或自定义业务对象. 3.功能:在指定的时间,弹出一个窗口,用户可以查看提醒.也可以取消或推迟. 如需演示项目的源码,可以 ...

  2. spark概念、编程模型和模块概述

    http://blog.csdn.net/pipisorry/article/details/50931274 spark基本概念 Spark一种与 Hadoop 相似的通用的集群计算框架,通过将大量 ...

  3. 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) ...

  4. ASP.NET Core模块概述

    原文地址:ASP.NET Core Module overview By Tom Dykstra, Rick Strahl, and Chris Ross ASP.NET Core模块(ANCM)让你 ...

  5. [02] Spring主要功能模块概述

    1.Spring主要功能模块   1.1 Core Container Spring的核心容器模块,其中包括: Beans Core Context SpEL Beans和Core模块,是框架的基础部 ...

  6. ASP.NET Core Module overview模块概述

    原文地址:ASP.NET Core Module overview By Tom Dykstra, Rick Strahl, and Chris Ross ASP.NET Core模块(ANCM)让你 ...

  7. openstack七大模块概述

    前言 OpenStack主要由七部分组成,分别是Identify, Image, Network, Compute, Block Storage, Object Storage, Dashboard, ...

  8. pygame各个模块概述

    在pygame中,有很多模块,每个模块对应着不同的功能,如果我们知道这些模块是做什么的,那么,对我们的游戏开发会起到关键性的作用. 我们就说说pygame中的各个模块吧!!! #pygame modu ...

  9. XAF-BI.Dashboard模块概述 web/win

    Dashboard模块介绍了在ASP.NET XAF 和 WinForms 应用程序中简单的集成 DevExpress Dashboard控件的方法. 其实不仅仅是控件,利用了现有的XAF数据模型,这 ...

随机推荐

  1. Swift - 使用闭包筛选过滤数据元素

    通常筛选一个数组,通常会在代码的其它地方创建一个函数,然后为数组的每个元素调用它.但这样做会使代码分散在许多地方,不便于阅读.使用闭包就可以将相关代码片断放在一起,使结构逻辑更加清晰. 比如,筛选一个 ...

  2. ajax跨域请求--jsonp实例

    ajax请求代码: //区域事件选择配送点 function changeDistrict(value){ if(value == 0){ $('#transport_node').empty(); ...

  3. perl 使用SUPER类来访问覆盖的方法

    有时候,你希望一个衍生类的方法表现得象基类中的某些方法的封装器 这就是 SUPER 伪类提供便利的地方.它令你能够调用一个覆盖了的基类方法,而不用声明 是哪个类定义了该方 法.(注:不要把这个和第十一 ...

  4. CentOS 6.4 + 曙光DS200 IPSan组建FTP服务器

    CentOS 6.4 + 曙光DS200 IPSan组建FTP服务器 http://write.blog.csdn.net/postedit/10911105#本系列文章由ex_net(张建波)编写, ...

  5. addEventListener()及attachEvent()区别分析

    Javascript 的addEventListener()及attachEvent()区别分析 Mozilla中: addEventListener的使用方式: target.addEventLis ...

  6. Struts 2中的constant详解

    通过对这些属性的配置,可以改变Struts 2 框架的一些默认行为,这些配置可以在struts.xml文件中完成,也可以在struts.properties文件中完成. 1.<constant ...

  7. EasyUI - Tabs 选项卡标签

    基本效果: 效果图: html代码: <div id="tab"> <div title="tab1" > <p>tab1& ...

  8. Ubuntu下使用sshfs挂载远程目录到本地(和Windows挂载盘一样)

    访问局域网中其他Ubuntu机器,在不同机器间跳来跳去,很是麻烦,如果能够把远程目录映射到本地无疑会大大方面使用,就像Windows下的网络映射盘一样.在Linux的世界无疑也会有这种机制和方式,最近 ...

  9. 三篇IMO的文章

    http://column.iresearch.cn/b/201411/687499.shtml?from=singlemessage&isappinstalled=1 http://colu ...

  10. 教会你如何编写makefile文件

    最近一直在学习makefile是如何编写的.当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的 ...