一 效果

二 工具

BMFont (下载地址:http://www.angelcode.com/products/bmfont/)

建议下载第三个,不需要安装,双击打开直接使用

三 准备图片

制作需要的文字,以数字为例:

以这十个数字为例制作位图。
切图,每个数字单独切成一个图片。

四 制作位图字体

选择Edit -> Open Image Manager,打开界面:

在这个界面导入图片,选择上面切出的文字图片。

导入图片是数字0的图片,然后Id这里设置为0对应的数字,右下角位置。
依次导入十个数字。导入完成之后,界面如下:

五 设置导出位图字体

Options-> Export Optons

Width是导出的图片的宽度
Height是导出的图片的高度
bit depth 设置32位。保留透明度

最下面的File format中,Font descriptor必须设置为XML。否则Laya无法识别字体。
Textures设置为png图片。
Compression设置为Deflate。
点击OK。

六 导出字体


导出位图字体,设置位图字体的名称,不要设置后缀名。我这里设置为font_num
导出的字体文件为:

七 使用位图字体

把上面导出的位图字体放在bin目录下的res目录下的子目录font_add下。
建议将字体直接放在bin目录的res目录下,由代码加载,不要放在项目的assets目录下。原因这个后面再提。

代码中如下:

 private mFontName:string = "diyFont";private bitmapFont: Laya.BitmapFont;private setBitmapFont(): void {this.bitmapFont = new Laya.BitmapFont();this.bitmapFont.loadFont("res/font_add/font_num.fnt",new Laya.Handler(this,this.onLoaded));}private onLoaded(): void {this.bitmapFont.autoScaleSize = true;Laya.Text.registerBitmapFont(this.mFontName, this.bitmapFont);var txt = this.mText;txt.text = "09876652134";//设置宽度,高度自动匹配txt.width = 750;//自动换行txt.wordWrap = true;txt.align = "left";//使用我们注册的字体txt.font = this.mFontName;txt.fontSize = 10;txt.leading = 5;this.mLabel.font = this.mFontName;this.mLabel.fontSize = 24;}
  • 1
    mFontName为位图字体设置一个名字,随便起名即可
  • 2
    创建Laya.BitmapFont对象,并加载字体
  • 3
    加载完成之后,执行onLoaded方法,注册mFontName名字的字体
  • 4
    this.mText和this.mLabel分别是Laya.Text和Laya.Label组件对象,可在IDE的场景中设置
    字体加载完成,代码中设置mText和mLabel对象的属性。
    最主要的是设置font属性是上面注册的字体名称

以上完成之后,就可以看到位图字体了。效果如下:

位图字体当然不止这样的数字文字的设置了,也可以设置中文字体,可以参考官网的设置(http://ldc.layabox.com/doc/?nav=zh-ts-1-2-5)

八 使用FontClip和Clip

效果图:

准备一个图片

场景添加FontClip

skin属性设置为准备好的图片
sheet属性 设置为图片中的文字,与图中文字一一对应,可以有中文
value值设置为图中文字的随意组合
spaceX代表字符间水平间距
spaceY代表字符间垂直间距
direction代表图中文字方向,默认水平

至于Laya.Clip组件的使用与之类似。
这两个组件组件特别适合游戏开发当中‘第几关’、‘第几级’等等,也适合文案固定组合的字体的设置。

九 注意事项

  • 1

位图字体的导出文件格式必须是XML格式,否则Laya不能识别,位图设置无效。(这一点与Cocos中使用位图字体的导出格式不同,Cocos中导出的格式Text即可使用)

  • 2

位图字体的使用,如果需要设置位图大小,则需设置

this.bitmapFont.autoScaleSize = true;

如果不设置为true,则设置字体文字大小无效。


欢迎关注公众号:技术印象


更新:2019年6月16日

完整的github代码地址:
https://github.com/longyinzaitian/WxLayaGame

欢迎各位朋友star,多多指教!


Laya的位图字体bitmapFont字体用法相关推荐

  1. android布局黑色字体颜色,Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法示例...

    本文实例讲述了Android开发之FloatingActionButton悬浮按钮基本使用.字体.颜色用法.分享给大家供大家参考,具体如下: 这里主要讲: FloatingActionsMenu自定义 ...

  2. 网络字体的中文用法(一)

    网络字体的中文用法(一) 2014年6月10日 歪脖骇客 1条评论 9 如果你使用的Windows XP操作系统,在浏览中文网页时,你会发现网页上的汉字基本上全部都是宋体.这是因为你的操作系统里安装了 ...

  3. truetype字体怎么转换成普通字体_字体 – 如何将位图字体(.FON)转换为truetype字体(.TTF)?...

    使用 FontForge Autotrace然后手动进行一些修正. 首先在Fontforge中集成Autotrace,请参阅Autotracing bitmaps in FontForge.这是我如何 ...

  4. Laya的位图/文字

    参考: Laya文本 测试版本:Laya 2.1.1.1 大部分游戏都会用到位图文字,例如dnf的伤害数字. 白鹭的位图文字是美术提供0-9十张单张图片,由TextureMerger导出fnt+jso ...

  5. html中哪些字体不识别中文字体,div字体_正确设置div兼容的汉字中文字体

    这里可以学习DIV字体设置方法,同时如果设置常见中文汉字字体,就需要将汉字进行转化或使用英文对应汉字字体来兼容各大浏览器,这样CSS设置的字体才能兼容各地浏览器. 一.全网页DIV默认字体设置 div ...

  6. 关于字体和字体微调(Hinting )的知识

    点阵字体与矢量字体点阵字体也叫位图字体,其中每个字形都以一组二维像素 信息表示.由于位图的原故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下.但对于 12-16px 这样小的汉字, ...

  7. [zz] 关于字体和字体微调(Hinting )的知识

    点阵字体与矢量字体点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示.由于位图的原故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下.但对于 12-16px 这样小的汉字,点 ...

  8. 字体: 字体平滑,反锯齿,和次像素渲染(收集)

    点阵字库是把每一个汉字都分成16×16或24×24个点,然后用每个点的虚实来表示汉字的轮廓,常用来作为显示字库使用,这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿. 点阵字体也 ...

  9. js字体溢出字体变小_如何在网络上使用可变字体

    js字体溢出字体变小 可变字体是由从事字体设计的四家最大的技术公司--Apple,Google,Microsoft和Adobe共同开发的. 顾名思义,可变字体允许设计人员从同一个字体文件中获取无限数量 ...

  10. 关于字体和字体微调(Hinting )的知识 .txt

    点阵字体与矢量字体点阵字体也叫位图字体,其中每个字形都以一组二维像素 信息表示.由于位图的原故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下.但对于 12-16px 这样小的汉字, ...

最新文章

  1. LabVIEW跳转访问网页
  2. HTTP API 自动化测试从手工测试到平台的演变
  3. 备忘录(scanf和continue)
  4. [转]有关IIS的虚拟目录的控制总结
  5. mysql distinct、group_concat
  6. 【数据结构总结】第五章 树和二叉树(非线性结构)
  7. MySQL常用存储引擎之MyISAM
  8. ZigBee技术的应用和优势
  9. 郓城天气预报软件测试,郓城天气预报15天
  10. activitimq集群搭建_Spring-activiti
  11. matlab gui教程 计算器,matlab gui编写的计算器程序
  12. Python中的*self,*self._args, **kwargs
  13. 愿你不会像我一样,活成狗一般的生活!
  14. 网络安全等级保护细则
  15. python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
  16. No debugging symbols found in a.out
  17. 苹果暗黑模式_微信暗黑模式终于来了!这次微信对苹果认怂了?腾讯张军回应......
  18. 基于深度学习的中文语音识别系统框架搭建
  19. 资产负债表java_2.资产负债表的基本要素有( )。
  20. 一、简单工厂模式(simple factory method)

热门文章

  1. 苹果电脑推出MacOSMojave10.14.5支持隔空投放2
  2. matlab求解联名方程组带三角函数的,matlab三角函数方程组
  3. 本特利990-05-50-02-00变送器
  4. adapterview android,[Android]ListView+AdapterView
  5. MFC图片类CImage数据转换:yuv422转CImage、rgb转CImage、CImage拷贝到CImage、rgb数据垂直镜像
  6. 74HC138 芯片(38译码器)和74HC245 芯片(处理段码)
  7. 计算机视觉算法 面试必备知识点(2022)
  8. 都2022了,我为什么还要写博客?
  9. 坐标系对应EPSG代号、经度范围、中央经线
  10. mathcad prime server system(PASS云计算书系统)开发