@w460461339
2017-02-06T00:20:28.000000Z
字数 2979
阅读 1006
Course:475
ImperialStudyLife
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)
实例化application interface
通过将ApplicationListener的实例传入Application的实例来实现lifecycle的监听
基本而言,File提供了一个面向全平台的文件处理方法。通过libgdx提供的File方法,可以不用在意平台之间的差异,直接调用其提供的方法,就可以方便的增删改查文件。 但会有时会受到平台的安全性限制。
为了避免绝对路径在不同平台下的不同,建议使用
is to load game assets (textures, sound files) from the same sub-directory of the application for all platforms
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();
1、CLASSPATH: .class文件,用于在jvm上跑
2、Internal Files:游戏资源文件,比如UI的图片,音效文件等等
3、Local File: 用于表示application需要生成的小文件,比如用于记录游戏状态的文件等等。
4、External: 截屏,通过网站下载的文件等;这些文件可以被用户转移或删除
5、Absolute。。。
额,根据网站介绍,说CLASSPATH和Absolute文件,是可以被忽视的。
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
基本用法:
Json的方法都被封装在com.badlogic.gdx.utils.Json这个类中(gdx内),只需要
Json json=new Json()
创建了对象后,就可以像普通对象一样使用里面的方法了。
该类中提供 to/from json的方法。
注意,当使用GWT的时候,只支持部分对象
POJOs
OrderedMap (but not ArrayMap)
Array
String
Float
Boolean
额,这个用dom4j什么的就可以做了,它用的貌似是自己写的XMLREADERHEXMLWRITER。
里面是它自己定义的一些Collections,比如SnapshotArray
【摘自百度百科】:
Libgdx主要是用Java写的,其中也掺杂了一些C/C++代码,这些代码是为了处理一些对性能要求很高的操作,比如物理引擎或者音频处理。
而jnigen是一个library,可以允许C/C++代码写入Java的 Source Code。
用于处理 geometry, linear algebra, collision detection, interpolation, and common unit conversions 这些问题的工具
Texture Packer,hiero,2dPracticeEditor(tool里将practiceeditor)都是直接集成到gdx-tool里面,创建对应的对象即可使用。
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.