热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在SpriteBuilder中使用BMFontLabel

开始不知道,还真有点小繁琐。mac系统上创建BMFont的工具有不少,我主要用hiero和GlyphDesigner;前者是java写的

开始不知道,还真有点小繁琐。

mac系统上创建BM Font的工具有不少,我主要用hiero和GlyphDesigner;前者是java写的,后者是mac原生的,功能都差不多。
还有一个类似的工具bmGlyph。

首先根据不同平台解决方案建立不同的字体尺寸,建议大小如下表:

Table 11-2. Bitmap font scaling for each resources folderAbsolute (iPad screen is 512x384)
UI Scale (iPad screen is 1024x768)
resources-phone
25% (i.e., Font size: 12)
50% (i.e., Font size: 24)
resources-phonehd
50% (i.e., Font size: 24)
100% (i.e., Font size: 48)
resources-tablet
50% (i.e., Font size: 24)
50% (i.e., Font size: 24)
resources-tablethd
100% (i.e., Font size: 48)
100% (i.e., Font size: 48)

创建完毕后导出为.fnt和.png两个文件,比如1.fnt和1.png
在SpriteBuilder中创建一个Fonts文件夹,然后根据上面创建的字体文件名在Fonts中建立1.bmfont文件夹然后在其中依次建立4个子文件夹:
resources-phone, resources-phonehd, resources-tablet, and resources-tablethd,然后按照不同的平台放入不同尺寸的字体文件(1.fnt和1.png)。

为了示例,我只是将1.fnt和1.png拷贝4次放到4个文件夹中,实际项目中需要修改尺寸以对应不同平台。

注意你建立的1.bmfont后,该文件夹名字会自动变为1.bmfont. ,即后面会多出一个点;这个先不用管,后面会说明处理办法。

这时的文件夹类似如下布局:

这里写图片描述

只不过图中的字体名称为gd。

在SpriteBuilder中File View视图中鼠标右键点击1.bmfont.文件夹选择Show in Finder,在打开的Finder窗口中将1.bmfont.改为1.bmfont。再回到File View视图中,发现字体图标发生了变化:

这里写图片描述

接下来,在场景中拖入一个Label BM-Font控件:

这里写图片描述

将其Font file属性设置为1.bmfont:

这里写图片描述

你可以将该Label链接到一个变量,然后就可以在Xcode中代码引用了。

我添加了一段倒计时代码,从10到0,然后切换game over场景:

-(void)updateCountDownLabel:(CCTime)dt{_countdownSecs += dt;if (_countdownSecs >= _totalSecs) {CCScene *gameoverScene = [CCBReader loadAsScene:@"Gameover"];[[CCDirector sharedDirector] replaceScene:gameoverScene];}float tmp = _totalSecs - _countdownSecs;int sec = tmp * 100 / 100;int msec = (int)(tmp*100)%100;NSString *str = [NSString stringWithFormat:@"%2d %2d",sec,msec];//[_countDownLabel setString:str];[_countDownLabelBMF setString:str];
}-(void)update:(CCTime)delta{[self updateCountDownLabel:delta];
}

最终效果如下图:

这里写图片描述


推荐阅读
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
author-avatar
天蝎完美_主义
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有