[关闭]
@w460461339 2017-02-06T00:20:28.000000Z 字数 2979 阅读 1012

大作业1:libgdx

Course:475 ImperialStudyLife


1、FIle

Files: exposes(暴露) the underlying(底层) file system(s) of the platform. Provides an abstraction over different types of file locations on top of a custom file handle system (which does not inter-operate with Java's File class).
提供关于一个不同文件存储/处理系统的抽象层(类似与openni)

2、starter classes

实例化application interface

3、LifeCycle

通过将ApplicationListener的实例传入Application的实例来实现lifecycle的监听

4、File

4.0 FIle Module

基本而言,File提供了一个面向全平台的文件处理方法。通过libgdx提供的File方法,可以不用在意平台之间的差异,直接调用其提供的方法,就可以方便的增删改查文件。 但会有时会受到平台的安全性限制。

为了避免绝对路径在不同平台下的不同,建议使用

is to load game assets (textures, sound files) from the same sub-directory of the application for all platforms
4.1 File的接口文件
1、提供枚举,表示FIle的路径类型(2中的某个方法会用到)
    https://github.com/libgdx/libgdx/wiki/File-handling
2、提供一系列获得FileHandle的方法

3、提供获取 External/Local storage 路径的方法

4、提供判断 External/Local storage 是否准备好被IO使用的方法

The different storage types might not be available depending on the platform your application runs on. You can query this kind of information via the Files module:

boolean isExtAvailable = Gdx.files.isExternalStorageAvailable();
boolean isLocAvailable = Gdx.files.isLocalStorageAvailable();

You can also query the root paths for external and local storage:

String extRoot = Gdx.files.getExternalStoragePath();
String locRoot = Gdx.files.getLocalStoragePath();
4.2 具体File类型
1、CLASSPATH: .class文件,用于在jvm上跑

2、Internal Files:游戏资源文件,比如UI的图片,音效文件等等

3、Local File: 用于表示application需要生成的小文件,比如用于记录游戏状态的文件等等。

4、External: 截屏,通过网站下载的文件等;这些文件可以被用户转移或删除

5、Absolute。。。

额,根据网站介绍,说CLASSPATH和Absolute文件,是可以被忽视的。

5、问题回答:

describe briefly what the framework does and how you use it

1、libgdx提供了一个类似于java中jdbc的接口,通过自己的backend完成了对于该借口在不同平台下的实现,使得用户在使用的时候能够通过指定不同的 ApplicationConfiguration: 对Android,就是AndroidApplicationConfiguration来完成初始化

如何使用:

a. Test案例中得到AndroidApplicationConfiguration,并将其传给AndroidBackend中的AndroidDaydream中的init方法。
b. 在AndroidDaydream的init中,创建了 graphics,input,audio,files,net等对象;并将这些对象赋值给Gdx中对应的对象。以File为例,该对象是AndroidFile,是Android的backend对File的自己实现。
c.完成对象的初始化后,就可以在Test案例中,就可以通过Gdx.xxx的形式,来进行调用。

以此类推,可以创建剩余几个module

image_1b87alknn1nteciu15fd13gv1d4g9.png-18.8kB

6、utilities

6.1 java对象和JSON的相互转换

基本用法:

Json的方法都被封装在com.badlogic.gdx.utils.Json这个类中(gdx内),只需要
Json json=new Json()
创建了对象后,就可以像普通对象一样使用里面的方法了。

该类中提供 to/from json的方法。

注意,当使用GWT的时候,只支持部分对象

POJOs  
OrderedMap (but not ArrayMap)
Array
String
Float
Boolean
6.2 XML和java的转换

额,这个用dom4j什么的就可以做了,它用的貌似是自己写的XMLREADERHEXMLWRITER。

6.3 Collections

里面是它自己定义的一些Collections,比如SnapshotArray

6.4 jnigen

【摘自百度百科】:

Libgdx主要是用Java写的,其中也掺杂了一些C/C++代码,这些代码是为了处理一些对性能要求很高的操作,比如物理引擎或者音频处理。

而jnigen是一个library,可以允许C/C++代码写入Java的 Source Code。

7、Math utilities

用于处理 geometry, linear algebra, collision detection, interpolation, and common unit conversions 这些问题的工具

8、第三方工具

Texture Packer,hiero,2dPracticeEditor(tool里将practiceeditor)都是直接集成到gdx-tool里面,创建对应的对象即可使用。

9、extension

gdx ai:

现在作为另一个项目被托管,

FreeType:

貌似是解决在图片上添加文字的问题。
传统用BitMapFonts,是依赖图片的,改变size会变得很丑,且会需要双倍的存储空间。
FreeType可以提供:
    1、ship only lightweight .ttf files with your game
    2、generate a BitmapFont of your desired size on the fly
    3、user might put his own fonts into your game

Physics:

libgdx comes with 2 different Physics libraries. Box2D which is used for 2D physics and also a experimental Bullet Physics wrapper which can be used for 3D physics.
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注