教你使用免费的BMFont工具和Photoshop来制作纹理贴图和fnt文件
在Cocos2d中使用CCLabelBMFont类时,需要提供纹理贴图和对应的fnt文件。制作文理贴图和fnt文件有下面这几种软件:
Glyph Designer (支持Windows和Mac平台,收费,稳定)
TinyFont (功能上要比Glyph Designer少,操作简单,支持Mac平台,收费)
Hiero (需要Java虚拟机,支持Windows和Mac平台,功能有bug,免费)
BMFont (支持Windows平台,功能相对简单,稳定,免费)
从成本角度考虑,我们排除掉前两个软件,Hiero环境搭建相对比较复杂,而且最终生成文理文件的功能也不稳定,有bug,因此我们选择BMFont来制作,虽然可以实现的效果简单一点,但是免费而且稳定,并且本文中我们来教你如何通过Photoshop来丰富我们最终得到的纹理效果。
BMFont工具的下载地址:
http://www.angelcode.com/products/bmfont/
首先我们介绍一下BMFont的使用方法。
打开BMFont的界面如下:
看到左侧为可选的字符列表,右侧为分类选择列表。打开菜单栏中的Options菜单,我们可以看到FontSettings,ExportOptions,Visualize,Savebitmap font as…等菜单项。
选择FontSettings,打开字体设置:
我们看到字体设置中可以设置字体(Font),添加额外的字体文件,设置字符集,字体的大小,样式等属性。Outputinvalid char glyph选项用来设置当制定字符不在TrueType字体定义中的时候,是否需要使用Unicode中定义的fallbackfont来显示相应的字符。关于TrueType和Fallbackfont详细介绍请参考:
http://baike.baidu.com/link?url=X8e7AnhU50_k5m9U429tgNLU4V1Buf7iZ7-7HArXejKXI9dSnsL9I7Z9SHNll9BliOg9VypqzexfYxs48XUJVK
http://en.wikipedia.org/wiki/Fallback_font
Do not include kerning pair用来设置是否允许使用字间距配对来调整字体间距。
关于KerningPair的参考资料:
http://www.blueidea.com/design/doc/2007/5160.asp
下面还有一些关于图像栅格化(rasterizing)的选项,有兴趣的朋友可以参考官方手册中的介绍:
http://www.angelcode.com/products/bmfont/doc/font_settings.html
最后Effects中可以设置描边(Outlinethickness)大小。
接着我们来看ExportOptions,即导出设置:
Padding用来设置导出的纹理图中每个字符文理的内边距,Spacing用来设置字符纹理图之间的距离(不影响字符纹理的大小),Equalizethe cell heights用来设置所有的字符纹理高度相同,Force offsets to zero选项勾选后,生成的每个字符纹理的xoffset和yoffset都会被置为0,xadvance等于字符纹理宽度,并且默认选择Equalizethe cell heights。
下面的Texture用来设置纹理贴图的总大小,当改大小不足以装下所有字符时,会使用分页的方式来实现,即一个fnt文件对应多张png纹理图。
Chnl Value用来设置ARGB通道,关于通道的使用方法,参考官方文档中的说明:
http://www.angelcode.com/products/bmfont/doc/export_options.html
常见的几种设置方法:
32位白色字符+黑色边框:outline,red = green = blue = glyph
32位白色字符(无边框):alpha =glyph, red = green = blue = one
Preset中定义了一些预置的通道设置供用户选择。
File format中用来设置导出的fnt文件类型和纹理贴图文件类型,以及文件压缩方式。
Visualize菜单项用来预览生成的纹理贴图效果。
Save bitmap font as…菜单项保存fnt文件和纹理贴图文件。
下面我们制作一个小例子:
首先我们选择一种字体,例如常见的Arial字体,然后我们在右侧的列表中选择第一个分类,然后在左边的字符中选中下面图中标出的字符(BMFont中选中字符为浅灰色,未选中字符为深灰色,最终导出的时候,BMFont只会为我们导出选中字符,所以一定确保你选择了字符,不然会得到一张空白的纹理图):
接着在FontSettings中设置:
Export Options的设置:
然后导出png和fnt文件。
接着使用Photoshop打开图片,设置图层属性如下:
设置完成后得到下面的效果:
我们在前面ExportOptions里面之所以设置了右侧和底部的Padding为3,就是为了为我们的投影留出空间。
我们在Xcode中用保存好的png和fnt文件来测试一下输出的效果,调用代码:
CCLabelBMFont*bmFont = [CCLabelBMFont labelWithString:@"test1234~~~"fntFile:@"fntexample.fnt" width:0 alignment:kCCTextAlignmentLeft];
bmFont.scale = 2;
bmFont.position =ccp(200, 200);
[selfaddChild:bmFont];
显示效果:
这里只是举一个简单的例子,我们还可以结合BMFont和Photoshop制作出很多更为好看的文字效果,大家可以在实践中根据自己的需要来进行设计。
教程就到这里,如果有什么问题欢迎留言。
教你使用免费的BMFont工具和Photoshop来制作纹理贴图和fnt文件相关推荐
- 教你如何免费使用微商工具,微信上一键添加,自动评论、点赞等系列功能,具有物理模拟人工点击没有封号性
教你如何免费使用微商工具,微信上一键添加,自动评论.点赞等系列功能,具有物理模拟人工点击没有封号性 1.介绍基本要素 [软件名称]:微友人脉 [软件版本]:1.3.6 [软件大小]:7.16MB [软 ...
- 全程2分钟!教你如何免费下载Windows 10
全程2分钟!教你如何免费下载Windows 10 2014-10-02 08:40:59 来源:pconline 原创 作者:唐山居人 责任编辑:caoweiye (评论314条) 终于在经过 ...
- 免费正则表达式辅助工具(转)
免费正则表达式辅助工具 前段时间由于工作需要,学了一天的正则表达式,发现正则表达式功能实在是强大,但是也很奇怪,刚接触会很不习惯.我不需要很深入地了解,所以也没学多久,不过找了几款很不错的免费的正则表 ...
- 分享:手把手教你如何免费且光荣地使用正版IntelliJ IDEA
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 TIPS 近日在个人技术讨论QQ群里,谈论到IDEA的那些事儿.有童鞋居然在某电商网站花钱买激 ...
- 推荐5最佳免费图像注释工具
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 图像标注是有监督机器学习中的数据标注技术之一,要做图像注释,必须需 ...
- Free Download Manager (FDM) 中文版 - 替代迅雷最佳免费开源下载工具软件
https://www.freedownloadmanager.org/ Free Download Manager (FDM) 是一款经典免费纯粹的下载软件,它开源无广告,界面简洁清爽,支持 BT. ...
- 永洪Desktop全能力永久免费 国产数据分析工具迈向新阶段
2021年4月27日 数字探索 触手可及 永洪科技新品发布会在北京成功举办 发布会上,永洪科技面向个人用户带来了一款颠覆行业,人人都可轻松上手使用的桌面智能数据分析工具--Yonghong Deskt ...
- 如何选择免费网站监测工具?国外mon.itor.us还是国内监控宝!
买了一个国外的网站空间或者是虚拟主机,放好了自己的网站,就可以给别人浏览和访问了.可是,我们不可能24小时守候在电脑上前面来查看我们的网站是否可以正常运行.退一步讲,我即使发现了网站空间不能够运行也需 ...
- 开源/免费界面自动化测试工具对比研究
摘要: 随着我行自动化测试实施范围的不断扩大,参与界面自动化测试的应用系统越来越多.我行的应用系统现阶段多采用商用工具QTP(UFT)作为执行工具来进行界面自动化测试,采购的QTP license是有 ...
最新文章
- elasticsearch创建mysql索引_ElasticSearch快速使用,基本索引创建-增加type-mapping-插入数据...
- 面试:如何从大量的 URL 中找出相同的 URL?
- openstack上传镜像失败_制作云window10镜像
- python实现键盘记录器
- CG CTF WEB 伪装者
- ubuntu之间传文件
- yii2通过url访问类中的方法_行为型设计模式 访问者模式
- 设计灵感|元素拼接的海报到底好看在哪里?
- 设计师必备,设计导航网站一流设计导航|16map
- win7配置iis 出现:HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容...
- swager java_Swagger介绍及使用
- java 二分查找法和顺序查找法的效率比较
- 银联在线支付、第三方快捷支付三种快捷支付模式有何区别?
- 【读书笔记】《梁宁·产品思维三十讲》——产品经理人生规划修心课
- 视易收银系统怎样连接服务器,视易收银系统操作方法
- Navicat安装教程(超详细)
- 计算机408学什么区别,考研计算机408考什么
- Keras:我的第一个神经网络二分类模型
- 自主安装IPA文件到iPhone上
- 宁皓网bootstrap
热门文章
- unity3d实现第一人称射击游戏之CS反恐精英(一)(第一人称移动)
- 服务器数据库的简单维护,服务器数据库的简单维护
- Android系统签名简介
- backup exec oracle agent无法验证数据库凭证,通过Backup Exec实施Oracle灾难恢复数据库 -电脑资料...
- 使用Heritrix进行主题抓取
- CPU虚拟化的三种技术
- 基于stc15f2k60s2芯片单片机编程(时钟DS1302)
- 发生身份验证错误。要求的函数不受支持(远程连接)
- 数通学习笔记1 - 数据通信网络基础
- 彻底解决windows英文版操作系统中文乱码问题