回执文字也有第二种方式,使用TTF字体,但是需要外加扩展包,因为如果你通过step-ui建立项目,默认是不加入这个包的
需要手动导入,导入方法:
(1)打开解压好的0.9.9版的包,extensions文件夹,gdx-freetype文件夹,
找到 gdx-freetype.jar 和 gdx-freetype-natives.jar。
(2)扩展包导入
首先,核心代码项目,将 gdx-freetype.jar 复制并粘贴到核心代码项目的lib文件夹,
然后将其添加到Referenced Libraries 库中。
其次,安卓项目,将 gdx-freetype.jar 复制并粘贴到 -android 项目的lib文件夹,
然后将其添加到Referenced Libraries 库中。
最后,桌面项目,将 gdx-freetype-natives.jar 复制、粘贴到 -desktop 项目的lib文件夹中,
然后加入到Referenced Libraries中。
(3)将 gdx-freetype 文件夹中,armeabi 和 armeabi-v7a 两个文件夹复制到 -android 项目中,
位于libs/,替换掉原有的armeabi和armeabi-v7a文件夹。
使用方法:
import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeBitmapFontData; public class MyGdxGame implements ApplicationListener{ private SpriteBatch batch; private BitmapFont font; private FreeTypeFontGenerator generator;//字体生产者 private FreeTypeBitmapFontData fontData;//字体加工者 @Override public void create() { batch = new SpriteBatch(); generator = new FreeTypeFontGenerator(Gdx.files.internal("data/MyFont.ttf")); fontData = generator.generateData(25,"bBdDfFgGiIlLnNtTxX 小树游戏引擎字体测试程序!",false); font = new BitmapFont(fontData,fontData.getTextureRegions(),false); } @Override public void dispose() { batch.dispose(); } @Override public void render() { Gdx.gl.glClearColor(0,0,0, 0); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); batch.begin(); font.draw(batch,"LibGDX游戏引擎Fnt字体测试程序", 20, 280);//普通绘制 font.draw(batch,"LibGDX游戏引擎Fnt字体测试程序", 20, 300,0,10);//截取绘制 font.drawMultiLine(batch,"小树n引擎测试", 330, 230);//换行绘制,可识别n换行符号 batch.end(); } @Override public void resize(int width, int height) { } @Override public void pause() { } @Override public void resume() { } }
PS:libgdx.so文件
答:一般来说.so文件就是常说的动态链接库, 是C或C++编译出来的,在可执行文件装载时或运行时,
由Android操作系统的程序来加载库。作为加载过程的一部分它负责解析外部引用(比如库)。
在不同的系统上,可执行文件包含一个叫做import directory的表,该表的每一项包含一个库的名字。
根据表中记录的名字,装载程序所需要的库,然后将其加载到内存中,之后根据加载库后确定的库的地址
更新可执行程序,更新后调用库中的函数或引用库中的数据。这就是.so文件的原理作用。
FreeTypeFontGenerator 类
TTF字体生产者
-------------------------------------------------------------------------------------
API定义:TTF字体的发生器(生产者)其实 FreeTypeFontGenerator 和 Texture 是一样的,
都只是一个容器,负责盛装“.ttf”的文件然后备用。
-------------------------------------------------------------------------------------
功能用途:负责保存和解析“.ttf”格式文件这个和Texture类是一样的。
-------------------------------------------------------------------------------------
使用方法:FreeTypeFontGenerator 一般都配合 FreeTypeBitmapFontData 来使用。
-------------------------------------------------------------------------------------
PS:这里特别声明一下,TTF文件一定要用英文名.
-------------------------------------------------------------------------------------
FreeTypeBitmapFontData 类
TTF字体加工者
-------------------------------------------------------------------------------------
API定义:负责处理FreeTypeBitmapFontData的数据的 (加工者)
-------------------------------------------------------------------------------------
功能用途:负责处理FreeTypeGenerator的数据 和 BitmapFontData 类似
-------------------------------------------------------------------------------------
使用方法:
FreeTypeBitmapFontData fontData = freetypeGenerator.generateData(
int Size, some Chinese String, false);
-------------------------------------------------------------------------------------
类的几个参数和重要的成员变量,第一个是字号的大小,
第二个是中文的字符串(即汉字,需要加引号),第三个翻转状态。
-------------------------------------------------------------------------------------
DEFAULT_CHARS:
FreeTypeBitmapFontData 有一个重要成员变量 DEFAULT_CHARS ,
它是作者Mario给我们封装好的基本英文字符打开FreeTypeBitmapFontData
你会看见如下图的变量赋值,这样即使".TTF"字库中没有英文字符,我们也可以输出英文字符的,
因为作者已经给我们打包了。
Comments NOTHING