【Android LibGDX游戏引擎开发教程】第08期:中文字体的显示和绘制(下)
在上一篇的文章中,我们介绍了Hiero这个非常好用工具的使用,但是LIbgdx的BitmapFont不支持多图,常用汉字
3500个,你总不能用hiero自己做吧,那怎么办呢?这其实微软早就解决这个问题了,它给我们提供了这个TTF字
库,保存汉字字,方便我们使用。
一、FreeType的使用
1、打开解压好的0.9.8版的包,找到里面的extensions文件夹
打开后,再点击进入gdx-freetype文件夹
找到gdx-freetype.jar 文件和armeabi、armeabi-v7a两个文件夹
2、找到之后,将gdx-freetype.jar文件和这两个文件夹下的libgdx-freetype.so文件复制粘贴到核心项目的libs文件夹中,如图所示:
其他的Jar包和so文件都是之前的项目必须要添加的。
3、可能大家会好奇这个libgdx.so是什么文件,为什么有就可以运行.TTF的文件了呢?而没有他就一直报错呢?
package com.example.mylibgdxfont03; 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 MyGame implements ApplicationListener {
private BitmapFont font; private FreeTypeFontGenerator generator; private FreeTypeBitmapFontData fontData; private SpriteBatch batch; @Override
public void create() {
generator = new FreeTypeFontGenerator(Gdx.files.internal("testfont.ttf")); fontData = generator.generateData(25, generator.DEFAULT_CHARS
+ "晚风把荣华吹散,名利是如此浅薄。—我一条寻水的鱼!", false);// 这里需要把你要输出的字,全部写上,前提是不能有重复的字。 font = new BitmapFont(fontData, fontData.getTextureRegion(), false); font.setColor(Color.PINK); batch = new SpriteBatch(); } @Override
public void dispose() {
font.dispose();
generator.dispose();
batch.dispose();
} @Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
font.drawMultiLine(
batch,
"Hello Everyone: \n \n晚风把荣华吹散,\n名利是如此浅薄。",
50, 220);
font.draw(batch, "——我是一条寻水的鱼!", 150, 90); batch.end();
} @Override
public void resize(int width, int height) {
} @Override
public void pause() {
} @Override
public void resume() {
} }
freetypeGenerator.generateData( int Size, some Chinese String, false);
是字号的大小,第二个参数是中文的字符串(即汉字,需要加引号),第三个参数是翻转的状态。
【Android LibGDX游戏引擎开发教程】第08期:中文字体的显示和绘制(下)的更多相关文章
- 【Android LibGDX游戏引擎开发教程】第07期:中文字体的显示和绘制(上)
在字体的显示和绘制中,Libgdx的作者(Mario Zechner,美国人)给我们提供了一个非常好用的工具 ——Hiero,那么下面就来看看它具体的使用方法. 一.Hiero工具的使用 1.Hier ...
- 【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用
在上一篇文章中,我们提到了图片必须是2的n次方的问题.但是随着Libgdx的不断完善和发展,使用一些工具就 可以很好的解决了这样一个问题,但是它的功能又不仅仅只限于此,那么下面就来让我们看看Textu ...
- 基于libgdx游戏引擎开发的飞天猫
闲来没事学学游戏,这是鄙人第一个小游戏——飞天猫 1,基于Android开发的小游戏,至少Android2.2以上的系统. 2,界面简洁,美观,游戏易操作,上手快. 3,可以左右摇摆手机来改变飞天猫的 ...
- libgdx游戏引擎教程
第一讲:libgdx游戏引擎教程(一)性能优良的游戏引擎—libgdx http://www.apkbus.com/android-57355-1-1.html 第二讲: libgdx游戏引擎教程(二 ...
- 或许您还不知道的八款Android开源游戏引擎
很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于iPhone下有诸如Cocos2d-iphone之类的免费游戏 ...
- [转载]或许您还不知道的八款Android开源游戏引擎
或许您还不知道的八款Android开源游戏引擎 分类: 技术文章 2010-08-04 20:27 17430人阅读 ...
- Android 2D游戏引擎AndEngine配置环境
Android 2D游戏引擎AndEngine配置环境 1.2 配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和 ...
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
原创文章,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/9128819 XML是一种非常重要的文件格式,由于C++对XML的支持非常完善 ...
- 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库
推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库 0. 引言 如果你是一个游戏开发者,并且正在寻找一个可以与 JavaScript 和 HTML5 无缝工作的游戏引擎.那么 ...
随机推荐
- Java之String类的使用细节
String类的特点: 字符串对象一旦被初始化就不会被改变,字符串存储在字符串常量池中(字符串缓冲区).如果池中没有就创建,如果有就直接拿过来用. 代码验证如下: String s ...
- 多线程下HashMap的死循环是如何产生的
前言 HashMap不是线程安全的,如果需要在多线程环境中使用Map,那么我们可以使用ConcurrentHashmap. 1.举例说明: package com.test; import java. ...
- javascript this指针指向?
前言 理解javascript的指针就需要先了解js的执行环境和作用域!执行环境的定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有一个与之关联的变量对象,环境中定义的所有的变 ...
- Python 3语法小记(九) 异常 Exception
常见异常: Exception 所有异常的基类 AttributeError 特性应用或赋值失败时引发 IOError ...
- Windows注册表的基本知识及应用
转帖:Windows注册表的基本知识及应用 2009-12-23 11:30:56 分类: Windows注册表的基本知识及应用 一.注册表的重要性 在DOS年代,对计算机的内存管理及系统配置主要通 ...
- 路由模块router实现step1
hashchange事件 参考:http://www.cnblogs.com/rubylouvre/archive/2012/10/24/2730599.html 需要解决的问题: 1.IE6/7及兼 ...
- The Decoder - UVa458
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/uva458.html 题目描述 The ...
- vj1010:高精乘+细心模拟
这题的话思路挺简单的,主要是打一个高精乘,然后考虑一些细节的东西 码得挺少时间的,但是调错调了很久... 讲一下思路吧: 就是读入的时候,先把小数点去掉,mark一下小数点的位置 去掉小数点之后也就进 ...
- 算法打基础——HashTable
这一节主要讲很多方面非常重要的hash table等问题. 由于平时很少用到这些,基本都忘了... 怎样快速的在内存中插入.删除.和搜索呢? 这就需要哈希表了 这一节主要知识点是:1 简单的映射表和处 ...
- Vnix项目正式启动
历经3年的学习时间,我从Puppy Linux到各种常见的Linux发行版,从Gentoo Linux再到LFS,期间学会了LiveCD.中文化定制.服务器搭建.Google Key Search.C ...