守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 703|回复: 0

[技术资料] 2dx中使用自定义位图字体

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51788
    钢镚
    1422

    开源英雄守望者

    发表于 2015-1-16 14:00:44 | 显示全部楼层 |阅读模式

    成品预览

    环境与工具

    cocos2d-x 2.2.3,AngelCode,PhotoShop

    在我参与的项目中,由于美术对战斗表现非常苛刻,飘血等飘字的样式否需要逐字自定义,例如上图中的Zzz,闪避,反击,等等,最初他们设想是把所有飘字做成各个散图,用飘图来代替最初的飘文字.这绝对不是一种好的方法.于是我想到了自定义位图字体.在 cocos2d-x源码中发现CCLabelBMFont对位图字体支持的非常不错.因为CCLabelBMFont中仅仅看某个字的矩阵范围,而这个矩阵里是什么 有什么 完全不会干涉.创建位图字体首先需要使用一款叫做AngelCode的工具.步骤如下:


    AngelCode的使用

    • 新建一个文本文件,写入要做成位图的字,例如:反击 挡 连击 闪 睡(Zzz)
    • 保存为UTF8格式
    • AngelCode中Edit->Select chars form file
    • AngelCode中Options->Font Setting 设置size大小
    • AngelCode中Options->Font Setting 选择默认字体
    • AngelCode中Options->Export Options修改 间隙像素 建议 > 3,
    • AngelCode中Options->Export Options修改Texture寛高
    • AngelCode中Options->Export Options修改Bit深度为32
    • AngelCode中Options->Export Options修改File Format为Text
    • AngelCode中Options->Export Options修改Textures为png文件
    • AngelCode中Options->Save Bitmap font as生成位图字体

    为适用cocostudio的自定义位图控件还需要改一下两个地方:

    • 打开输出的.fnt修改file="xxx_0.png" 为file="xxx.png"
    • 修改输出的.png文件名xxx_0.png 改为xxx.png

    修改个别特殊字的矩阵

    上图中我的睡字 其实是用了Zzz符号代替的,但是这个符号比睡字大根本放不下.怎么办呢?我们可以直接修改.fnt文件中睡字所在的矩阵范围.例如原来的是:

    1. char id=30561 x=390   y=0     width=74    height=74    ....省略后面部分
    复制代码

    74×74的寛高直接被我修改为:

    1. char id=30561 x=390   y=0    width=112    height=94    ....省略后面部分
    复制代码

    这样就解决了个别特殊字体过大的问题,当然 也可以在程序里把字体放大,但是美术们好像对放大的效果不满意.所以直接修改fnt数据应该是最好的方法了.

    在cocos2dx中使用

    1. std::string szString("睡睡");
    2. std::string szFontName("FightFilyFont.fnt");
    3. CCLabelBMFont::create( szString, szFontName, kCCLabelAutomaticWidth, kCCTextAlignmentCenter );
    复制代码

    本文来自:http://shadowkong.com/archives/1859

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-11-18 16:46 , Processed in 0.040941 second(s), 34 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表