cocos2d-x位图字体生成工具Bitmap Font Generator的使用(内含命令行)

2023-11-13

欢迎转载,本帖地址:http://blog.csdn.net/jinjian2009/article/details/9371691


刚才发完贴发现,图全没了,原来自己直接贴的,没有上传,现在补全了~

说下本文,重点就是命令行,如果用过这个工具的,可以直接看最后一条命令行~如果是高手,直接跳过本文吧偷笑

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

对于Bitmap Font Generator的使用方法网上的也有很多文章进行了说明,但是可能并不够全面

本文可能也没有那么全面,但是绝对有新颖的地方。

首先,说下为什么要使用这款工具作为cocos2d-x的字体生成工具。其实cocos2d-x能使用的字体生成工具也有好几个,当然了本人也没有全部使用过,就不一一说明了。Bitmap Font Generator(下面简称BMFont)工具的好处有一下几点:

1.支持windows系统,貌似也只支持windows,好吧,这也是个缺点

2.支持从文本中获取所需要生成的字

3.支持保存设置文件

4.支持命令行


BMFont工具的下载地址:http://www.angelcode.com/products/bmfont/

安装完成之后,可以看下界面



右边是字库分类,左边是字符,可以点中作为输出的字体(白灰色底的是选中的,黑灰色底的是没有选中的)。

这个先别急着选,先设置下输出的配置,比如字体什么的~

一、字体设置

打开左上角的Options,选择Font settings,出现如下界面,这个就是可以设置字体的地方



说下几个重点的地方

首先选择字体,Font右边的下拉列表可以选择。如果没有自己需要的字体,说明系统没有安装这个字体,可以先安装字体,再来设置(推荐该方法)。或者点击下面的Add font file,去加载字体。

其次,设置Charset,选择Unicode

二、导出设置

打开左上角的Options,选择Export Options,出现如下界面,这个就是可以设置导出的地方



这些设置,主要说下File format,包括三种格式 文本、XML、二进制,cocos2d-x支持文本格式的fnt文件,选择text就OK

三、输出文字选择

具体要导出哪些文字,需要选择,主要方法有以下两种:

1.手动选择:可以看到主界面上面右边的区域,其将文字进行了分类,字符集的分类



比如002190,表示的是Arrows,箭头

此时选中,可以看到左边显示的是Arrows表示的文字内容



如果选中其中的一个或者几个,Arrows旁边的白框会变成如下:



如果全选的话,Arrows旁边的白框会变成如下(PS:直接点Arrows旁边的白框一样的效果):



在菜单栏的Edit选项上面,会有一些便捷操作



(Un)Select all chars 选中或者不选中,当前选中的那个字符集分类中的所有字体(读者可能不理解,其实试一下就好,或者看下一条,也许就很好理解了)

Select marked subset(s)  选中所有已经选中的子字符集下的文字(使用ctrl可以在左侧选中一个或者几个子字符集,如下图)



UnSelect marked subset(s)  与上一条相反,不选中已经选中的子字符集下文字

Clear all chars in font 清除所有选中的文字

2.通过文本选择

通过上面的手动选择,可以看出选择文字是个体力活,那有没有什么简便方法呢~答案是肯定的,这个工具给力的地方体现出来了

这个工具可以通过解析文本来输出文本当中所用到的问题,当然如果你选中的字体里面,没有该文字,那可能就无法输出了哦~

那么如何操作呢,如下:

选择菜单栏上的Edit下的Select char from file,然后浏览找到自己需要的生成字体的文本,就这么简单

但是,问题来了,这个文本的格式,是很操蛋的一个问题,它需要是UTF-8,并且是带BOM的UTF-8

如果不是这个格式会肿么样?嘿嘿嘿,当然是生成出来的是乱码喽(PS:其实估计英文的话,问题不大,中文就是各种莫名乱码)

如果不是这个格式的肿么办?哈哈哈~~百度看看如果转换格式吧,很多文本编辑器带这个功能,本人不多说了哦~

四、保存配置文件

首先说下为什么要保存配置文件,这个嘛~好处还是蛮多的

1.保存了配置文件,下次就不需要手动再配置一次了~

2.时间长了忘了怎么配置的了,肿么办?保存一下,白纸黑字嘛

3.保存下来也是文本,可以直接文本编辑器里面去修改配置

废话不多说了,来说下怎么操作:

选择菜单栏上的Options下的Save configuration as...



然后选择保存的位置,以及文件名~

配置文件的后缀名是.bmfc

上图可以看到,还有个Load configuration,这个是加载配置文件的,下次打开工具之后可以直接加载了,而不需要重新配置了~哇咔咔

五、导出fnt,以及贴图文件

差点忘了这条了,这个很简单:

选择菜单栏上的Options下的Save bitmap font as...或者快捷键 ctrl + s

六、命令行使用

这个是重头戏呀~按惯例说说,命令行的好处吧:

1、使用命令行,方便啊,一次弄好了,以后直接用个批处理,都不用再打开工具软件

2、超级方便,如果文本更新了,也不需要再打开工具软件

3、绝对超级方便,如果字体配置改了,文本也更新了,还是不需要打开工具软件

差不多了,该说正事了,如何使用命令行:

首先啊,上面的步骤还是要走的,要导出个配置文件。

其实啊,需要做文字的文本要准备好

最后,再写个.bat批处理文件就OK了~

批处理内容如下

rem 设置BMFont软件安装路径

set BMFont_PATH=E:\Progra~1\AngelCode\BMFont

rem 设置文本、配置文件以及输出fnt文件的路径

set TEXT_PATH=E:\XXX

"%BMFont_PATH%\bmfont.exe" -t %TEXT_PATH%\text.txt -c "%TEXT_PATH%\peizhi.bmfc"  -o "%TEXT_PATH%\font.fnt"


命令说明: -t 选择的文本, -c 选择的配置文件 -o 输出的fnt文件


没想到居然写了这么多,其实本来就想写个命令行的,让大家方便就好~~

希望大家多多支持,如果有不对的地方,还请指教~

欢迎转载,本帖地址:http://blog.csdn.net/jinjian2009/article/details/9371691

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cocos2d-x位图字体生成工具Bitmap Font Generator的使用(内含命令行) 的相关文章

  • cocos2d-x中有一个JniHelper类详细使用

    主体思路 通过JNI获取java虚拟机 再获取当前程序的JNI环境 通过JNI环境获取需要调用的java类信息 再获取需要调用的java类中的函数信息 再通过JNI环境调用 使用类信息 函数信息 调用对应的java函数 看起来好像有点复杂
  • Cocos2d-x JSB 自动绑定bindings-generator (以下简称B-G) 使用心得

    文章转载自 http www cocoachina com bbs read php tid 177904 B G 是什么 当使用JSB的时候 如果你想要使用的C 的类或者方法没有在已有JSB中被绑定 这时候 就可以使用B G 它可以生成相
  • Cocos2d-x 3.x部署

    这是我第一次写技术文章 这里只是分享一下我的部署经验 请各位参考 谢谢 我简单的写写我的部署步骤 只参考了官方的readme 环境 win7 64位 1 打开控制台cmd 2 进入到cocos2d x引擎目录 键入setup py 键入的前
  • Cocos2d-android游戏引擎

    什么是游戏引擎 游戏引擎是指一些已编写好的可编辑游戏系统或者一些交互式实时图像应用程序的核心组件 这些系统为游戏设计者提供各种编写游戏所需的各种工具 其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始 Cocos2d家族 coc
  • Cocos2d-x的SprideMonkey的JavaScript与C++的交互(一) - 函数操作

    最近也是换了份新工作 搞棋牌平台了 标新立异呵呵 哥哥使用node js来开发这套东东 公司什么底子也没有 在西安就这样吧 最近正在搞 扑克 由于是服务器很多逻辑都是js的所以 希望cocos2d x的客户端也可以js搞起 但是已经用c 写
  • OpenGL Vertex Buffer Objects(VBOs)

    OpenGL Vertex Buffer Objects VBOs 分类 OpenGL2010 05 20 12 53 3714人阅读 评论 13 收藏 举报 buffer float list struct 存储 工作 原创文章转载请注明
  • cocos2dx跨平台直播实例-ffmpeg-ios篇

    一 环境 mac 10 12 2 cocos2dx 3 13 1 ffmpeg 3 0 二 新建项目和编译库 cocos2dx按照官网新建一个实例 ffmpeg编译ios库http blog csdn net u013654125 arti
  • Cocos2d-x 3.9教程:10.使用CocosStudio的UI编辑器从UI文件中加载布局和控件

    Cocos2d x 3 9教程 10 使用CocosStudio的UI编辑器从UI文件中加载布局和控件 1 1 使用CocosStudio的UI编辑器 1 1 1 安装和启动 从官网上下载2015年11月18日版本 Cocos studio
  • CocosCreator 游戏小地图/地图雷达

    更多笔记和源码请关注 微信公众号 CocosCreator笔记 演示 ps 请注意左上角 技术摘要 大地图与小地图坐标转换 更新小地图中元素及视口位置 拖动小地图中视口位置 更新Main Camera位置 实现 01 小地图 图片 的宽高比
  • COCOS2DX学习之Box2D物理引擎-------物体和相互作用

    1 创建一个静态物体 创建一个静态物体应该很简单 在头文件生命一下要创建新物体的函数 然后在cpp文件中实现它即可 具体的时候先过程 首先要用createbody函数创建一个物体 然后定义一个b2bodydef变量 指定一下这个变量的typ
  • 序列化 CDT 项目设置时遇到了

    当我构建项目时 我收到此错误 Serializing CDT Project settings has encountered a problem Null Pointer Exception 我正在使用最新的 eclipse 并尝试为 A
  • 导入cocos2d项目后,eclipse引发两个奇怪的错误:“Android Library Update”,“C/C++ Indexer”

    将cocos2d项目导入到eclipse后 会引发两个奇怪的错误 Android 库更新 C C 索引器 Error An internal error occured during C C java lang NullPointerExc
  • 如何在Cocos2d-X中交换CCSprite对象中的精灵

    我有一个从 CCSprite 继承的对象 我想从这个对象内部改变图像 如何在 Cocos2d X 中更改图像 精灵 而不创建新的 CCSprite 对象 谢谢 阿德里安 mySprite gt setTexture CCTextureCac
  • 如何使用 Marmalade 编译 Cocos2d-X?

    有谁知道教程 或者三个简单的步骤来编译我用 Cocos2d x 和 Marmalade 编写的代码 我想将我已经在 Cocos2d X 中编译和使用的代码插入到 marmalade 项目中 然后进行编译 很多地方都写得很简单 但我却很难做到
  • 如何制作双向平台box2d主体?

    我使用 box2d 创建了平台 我想要 box2d 身体检测而不是动态检测 Box2d 形状将执行以下操作 在某些条件下检测碰撞 在某些情况下不检测碰撞 两种条件都适用于同一 box2d 对象中的不同条件 任何想法都会有很大帮助 提前致谢
  • Cocos2d-x - 如何将CCLayer的一部分设置为透明?

    我是新手cocos2d x我需要你的帮助 我需要使图层的触摸部分透明 如何使图层的一部分透明 我曾想过使用 ClippingNode 但我找不到示例或文档 我使用C 谢谢 在所有cocos2d x版本中添加的TestCpp项目中 您可以找到
  • 如何在cocos2dx 3.0中调用callfunc函数

    我必须将 Objective C 转换为 C 11 我坚持使用以下语法 我已在 testcpp 中引用并尝试以下语法 这是我尝试过的代码 this gt runAction Sequence create blink CallFunc cr
  • 安卓后退按钮不起作用

    我正在使用 cocos2dx 制作一个小游戏 在游戏的活动中我提供以下函数来处理后退按钮 Override public boolean onKeyDown int keyCode KeyEvent event return super o
  • 将数据库(例如 sqlite)与 cocos2d-x 一起使用

    我开始在 iPhone 上构建游戏应用程序 我正在使用 cocos2d x 游戏引擎 因为它很容易从那里移植到 Android 而且编码是用我非常熟悉的C 编写的 我想知道是否有办法在 cocos2d x 中使用任何数据库 虽然sqlite
  • 无法在 OSX 上使用 eclipse for android 链接到 cocos2dx

    我以前从来没有花这么多时间来初始设置开发环境 这有点荒谬 我正在尝试运行cocos2dx附带的演示代码 我在用着 ADK 附带的 eclipse 风格 cocos2d 2 1beta3 x 2 1 0 ndk r8c 我尝试使用 creat

随机推荐

  • Canalys 2020Q2报告:百度智能云稳坐第一阵营 AI打造差异化竞争力

    在AI新基建领域的持续布局下 百度智能云站稳中国云市场第一阵营 9月9日消息 据英国调研机构Canalys发布的2020年第二季度中国基础云市场报告显示 中国云计算市场整体规模达43亿美金 同比增长70 突破新纪录 其中 头部四家厂商市场占
  • 手机热点总是正在连接服务器,电脑连接手机热点无法上网的三种解决方法

    电脑连接手机热点无法上网的三种解决方法 方法一 网络诊断 右键点击通知栏的网络图标 打开网络和共享中心 如图所示 在网络和共享中心 找到所连接的手机网络热点并点击它 如图所示 点击 诊断 功能 诊断网络无法连接的问题 如图所示 系统的网络诊
  • 网络分层模型

    OSI七层模型 物数网传会表应 物理层 主要定义物理设备标准 如网线的接口类型 光纤的接口类型 各种传输介质的传输速率等 它的主要作用是传输比特流 就是由1 0转化为电流强弱来进行传输 到达目的地后再转化为1 0 也就是我们常说的数模转换与
  • 性能综述方法论

    性能问题和Bug不同 后者的分析和解决思路更清晰 很多时候从应用日志 文中的应用指分布式服务下的单个节点 即可直接找到问题根源 而性能问题 其排查思路更为复杂一些 对应用进行性能优化 是一个系统性的工程 对工程师的技术广度和技术深度都有所要
  • fiery服务器不显示,fiery服务器打印设置

    fiery服务器打印设置 内容精选 换一换 在创建数据库连接之后 才能使用它来执行SQL语句操作数据 JDBC提供了三个方法 用于创建数据库连接 DriverManager getConnection String url DriverMa
  • 矩阵的秩与行列式的几何意义

    这里首先讨论一个长期以来困惑工科甚至物理系学生的一个数学问题 即 究竟什么是面积 以及面积的高维推广 体积等 1 关于面积 一种映射 大家会说 面积 不就是长乘以宽么 其实不然 我们首先明确 这里所讨论的面积 是欧几里得空间几何面积的基本单
  • spring boot jar部署 控制台 日志 乱码

    spring boot jar部署 控制台 日志 乱码 问题描述 spring boot jar包部署 通过java jar 命令运行 jar文件 代码中通过变量log输出到控制台的中文 乱码 但是仅仅是在运行jar时才乱码 而在用ecli
  • Mybatis源码分析:MapperMethod中内部静态类MethodSignature的作用

    MethodSignature分析 MethodSignature为MapperMethod类提供了三个作用 获取待执行方法中的参数和 Param注解标注的参数名 获取标注有 MapKey的参数 Mapkey作用在后续会讲到 方法的返回类型
  • SQLSERVER-CASE关键词的用法 .

    在Oralce中有个函数为Decode 感觉非常好用 但是此函数为Oracle所独有 在SQLSERVER和MYSQL中实现与之相类似的功能还无相关函数 但通过CASE关键词可实现类似功能 1 首先让我们看一下 CASE 的语法 在一般的
  • 僵尸进程及其处理

    进程 一个可并发执行的程序在一个数据集上的一次运行 即程序的一次运行过程 进程与程序的关系 程序是进程的一个组成部分 是进程的执行文本 进程是程序的执行过程 僵尸进程 进程主体结束 但是进程的PCB依旧存在 在多进程编程中 父进程未结束 但
  • 用U盘安卓esxi虚拟机出现 error loading /s.v00 错误解决办法

    前段时间用 一个 白色的 东芝U盘 给戴尔 R720服务器安装 esxi 6 0时 在加载到 s v00 找个文件时出现错误 大致为 error loading s v00 compressed MD5 xxxxxxx decompress
  • vue3快速入门-Teleport传送(瞬移组件)

    Vue 的组件架构使我们能够将用户界面构建为能够精美地组织业务逻辑和表示层的组件 Teleporting是Vue 3发布带来的一项新功能 它的灵感来自React Portals 相同的门户是 React 中的一个常见功能 在 Vue2 的
  • 2023最新100道渗透测试面试题(附答案)

    眨眼间2023年快过去一半了 不知道大家有没有找到心仪的工作呀 今天我给大家整理了100道渗透测试面试题给大家 需要答案的话可以在评论区给我留言哦 第一套渗透面试题 什么是渗透测试 它的目的是什么 渗透测试的五个阶段是什么 您如何选择正确的
  • SimPy

    目录 简介 安装命令 Environment Events Sleep until woken up Waiting for another process to terminate Interrupting another process
  • 【“码”力全开,“章”显实力】2022年第1季Task挑战赛贡献者榜单

    通过区块链技术及智能合约实现石头剪刀布的游戏玩法 解决双方遇到分歧的场景 让一方说服另一方 从0开始构建WeCross Go SDK 以方便社区开发者通过Go SDK实现UBI接口的快速调用 一系列FISCO BCOS WeBASE的实操教
  • H5之webcoekt播放JPEG图片流

    一 简介 既然webcoekt是基于tcp连接的 理论上讲所有的浏览器是可以私有协议处理二进制的 如果我们需要播放视频 我们可以将视频数据在后端解码后直接将图片推送到webcoekt前端 然后前端通过websocket接收图片然后将图片显示
  • 如何修改jar文件的内容

    在做 或修改别人的 项目的时候 可能遇到要修改调用的的jar包内的类属性或方法的问题 在eclipse或是其他的IDE中是无法直接修改的 所以需要一个解压jar gt 修改文件 gt 编译 gt 打包成jar文件的过程 下面简要的记录下我是
  • KL散度

    KL散度 Kullback Leibler divergence 也称为相对熵 relative entropy 是用来衡量两个概率分布之间差异的一种指标 在机器学习中 KL散度常常用于度量两个概率分布之间的相似度或差异性 具体来说 假设我
  • Volatile关键字

    目录 1 volatile是什么 2 volatile具有什么样的特性呢 3 volatile的内存语义 JMM 在java中如何保证可见性呢 总线嗅探机制 如何保证原子性 volatile关键字可以保证指令重排序 JMM 就将内存屏障插
  • cocos2d-x位图字体生成工具Bitmap Font Generator的使用(内含命令行)

    欢迎转载 本帖地址 http blog csdn net jinjian2009 article details 9371691 刚才发完贴发现 图全没了 原来自己直接贴的 没有上传 现在补全了 说下本文 重点就是命令行 如果用过这个工具的