软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 移动开发 -> Libgdx之BitmapFont字体 -> 正文阅读

[移动开发]Libgdx之BitmapFont字体


前面介绍了怎么将图片在屏幕上渲染出,但是一个游戏仍然需要文字来说明。在Libgdx中用BitmapFont来处理文字。

BitmapFont的简单说明


BitmapFont(位图字体)使用Batch来渲染,BitmapFont字体包含2个文件.png 和 .fnt。 .fnt文件描述了位图字体的位置,大小等等信息。还是首先看类图:
[img]http://img.blog.csdn.net/20160403205238556
其实这几个方法是很简单的,看一下具体实现就能知道是做什么的
/** Creates a BitmapFont using the default 15pt Arial font included in the libgdx JAR file. This is convenient to easily
     * display text without bothering without generating a bitmap font yourself. */
    public BitmapFont () {
        this(Gdx.files.classpath("com/badlogic/gdx/utils/arial-15.fnt"), Gdx.files.classpath("com/badlogic/gdx/utils/arial-15.png"),
            false, true);
    }

    /** Creates a BitmapFont from a BMFont file. The image file name is read from the BMFont file and the image is loaded from the
     * same directory. The font data is not flipped. */
    public BitmapFont (FileHandle fontFile) {
        this(fontFile, false);
    }

    /** Draws text at the specified position.
     * @see BitmapFontCache#addText(CharSequence, float, float) */
    public GlyphLayout draw (Batch batch, CharSequence str, float x, float y) {
        cache.clear();
        GlyphLayout layout = cache.addText(str, x, y);
        cache.draw(batch);
        return layout;
    }

    /** Draws text at the specified position.
     * @see BitmapFontCache#addText(CharSequence, float, float, int, int, float, int, boolean, String) */
    public GlyphLayout draw (Batch batch, CharSequence str, float x, float y, float targetWidth, int halign, boolean wrap) {
        cache.clear();
        GlyphLayout layout = cache.addText(str, x, y, targetWidth, halign, wrap);
        cache.draw(batch);
        return layout;
    }

    /** Draws text at the specified position.
     * @see BitmapFontCache#addText(CharSequence, float, float, int, int, float, int, boolean, String) */
    public GlyphLayout draw (Batch batch, CharSequence str, float x, float y, int start, int end, float targetWidth, int halign,
        boolean wrap) {
        cache.clear();
        GlyphLayout layout = cache.addText(str, x, y, start, end, targetWidth, halign, wrap);
        cache.draw(batch);
        return layout;
    }

从第一个构造函数我们可以看出,如果不指定具体的.fnt函数,系统自动从JAR自带的包中加载一个字体

BitmapFont绘制中文


默认的字体中是不支持中文的,因此如果我们想要在Libgdx中绘制中文,需要自己创建字体。Libgdx提供了一个工具Hiero方便我们来创建自己的字体,首先看工具的介绍:
[img]http://img.blog.csdn.net/20160403210804172
注意这里有一些字体是不支持中文的,可以下拉选择 宋体 仿宋 等字体
Libgdx只能绘制出在效果区有汉字的文字,如果效果区没有,那么不能绘制
测试代码
SpriteBatch batch;
    BitmapFont font;

    @Override
    public void create() {
        batch = new SpriteBatch();
        font = new BitmapFont(Gdx.files.internal("font/hireo.fnt"));

    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        batch.begin();
        font.setColor(Color.WHITE);
        font.draw(batch, "我爱编程", 200, 400);

        font.setColor(Color.BLUE);
        font.draw(batch, "WOAIBIANCHENG", 200, 340);

        // 放大2倍
        font.setColor(Color.RED);
        font.getData().setScale(2.0f);
        font.draw(batch, "Libgdx", 200, 280);
        font.getData().setScale(1.0f);

        // 绘制多行字体
        font.draw(batch, "This is\nmultiline string", 200, 220);

        batch.end();
    }

    @Override
    public void dispose() {
        batch.dispose();
        font.dispose();
    }

[img]http://img.blog.csdn.net/20160403213541042
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-04 00:13:10  
移动开发 最新文章
深入了解android中的消息机制Handler
Android
Libgdx之BitmapFont字体
AndroidApp发布到应用市场的流程
Android开发找工作之前先看看这些知识点吧
View的事件分发机制解析
简单介绍了解白鹭引擎Egret
Cocos2d
android获取本地图片(二)
动画特效七:碰撞动画
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2017年11日历
2017-11-18 23:56:39
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --