cocos2d-x-3.1 Text Labels(官方正式译文)

介绍

cocos2d支持(true type字体)标签,和纹理地图集标签。

LabelTTF 标签的优缺点:

  • 全部 TTF 字体的长处: 随意大小,支持调整字距.
  • 易于使用. 不须要外部编辑器.
  • 创建或更新很慢。是由于会创建一个新的纹理, 尤其是在Android设备上.

LabelAtlas, LabelBMFont 优缺点:

  • 创建和更新很快, 是由于不会创建一个新的纹理.
  • 字体能够进行定制 (阴影, 渐变, 模糊, 等)
  • 依赖于外部编辑器: AngelCode / Hiero editor, GIMP / Photoshop
  • 假设缩放文本会失真

标签对象

创建标签: 简单方式

事例:

LabelTTF* ttf1 = LabelTTF::create("Hello World", "Helvetica", 12, Size(245, 32), TextHAlignment::CENTER);

fontName 是TTF字体所用的名字. 你也能够使用自定义的TTF文件. 你仅仅须要将 .ttf 的文件加入到你的项目中就可以.

假设载入字体失败,它会使用UIFont类.

注意: OpenGL的纹理大小会基于字体的大小和字体的名称进行自己主动计算.

创建标签: 复杂方式

你也能够使用以下的API创建纹理:

LabelTTF* LabelTTF::create(const char *string, const char *fontName, float fontSize,
                               const Size &dimensions, TextAlignment hAlignment,
                               VerticalTextAlignment vAlignment)

注意:假设你使用这样的方式, 你仅仅能使用OpenGL的纹理尺寸.假设纹理不够大, 仅仅有部分的标签将被渲染.

对齐方式

* TextAlignmentLeft (left alignment)

* TextAlignmentCenter (center alignment)

* TextAlignmentRight (right alignment)

假设你想改动对齐的方式能够使用 anchorPoint 属性. 事例:

//left alignment
label->setAnchorPoint(Vec2(0,0.5f));
// right alignment
label->setAnchorPoint(Vec2(1,0.5f));
// center aligment (default)
label->setAnchorPoint(Vec2(0.5f,0.5f));

文字内容

事例:

label->setString("Hello World 2");

注意: 你每次 setString 将会创建一个新的 OpenGL
纹理. 这意味着 setString 会创建一个新的
Label 而变的很慢. 所以, 不要使用Label对象,
假设你想常常的更新它们. 能够考虑使用 LabelAtlas 来取代.

Color

你仅仅须要调用颜色參数就能够改变你的字体颜色例如以下:

label.setColor(Color3B(0,0,0)); // or
label.setColor(Color4B(0,0,0,0)); // setOpacity

Color3B 颜色事例:

* white - (255,255,255)
* black - (0,0,0)
* blue - (0,0,255)
* green- (0,255,0)
* red - (255,0,0)
* Grey – (84,84,84)
* Brown – (165,42,42)
* Pink – (255,192,203)
* Purple – (160,32,240)
* Yellow – (255,255,0)
* Gold – (255,215,0)

LabelBMFont标签

介绍

建议使用LabelBMFont 的方式来高速创建标签:

  • 能够定制和编辑位图(图片)
  • 你能够更新或初始化标签而没有消耗
  • 它很灵活.每一个字母的标签都能够当作一个Sprite
  • 支持字距的调整

LabelBMFont标签解析是以官方代码格式来创建一个标签.要创建这些类的标签。你能够用这些编辑器:

http://www.n4te.com/hiero/hiero.jnlp (java
version)

http://slick.cokeandcode.com/demos/hiero.jnlp (java
version)

http://www.angelcode.com/products/bmfont/ (windows
only)

http://glyphdesigner.71squared.com/ (Mac
only)

http://www.bmglyph.com (Mac
only)

http://tinyfont.com (Mac
only)

Java编辑器与Windows的编辑器:

Windows编辑器是官方的代码编辑器

Java编辑器:在Mac上执行

Java编辑器:有额外的功能。如阴影,渐变,模糊

创建一个LabelBMFont标签

事例:

LabelBMFont *label =LabelBMFont::create("hello font", "fonts/markerFelt.fnt", size.width/1.5, TextHAlignment::CENTER);

因为字体大小是固定的。你须要细致考虑你须要的字体大小.因为纹理存储器,单独的每一个大小的字体可能是低效的.在这样的情况下,它缩小标签可能是有意义的,以实现不同的尺寸的大字体.因为标签不过一个Node,你能够通过scale属性来实现

操作每一个字符

因为CCLabelBMFont是CCSpriteSheet的子类,你能够像一个CCSprite一样操纵的每一个字符.第一个字符将用tag=
0加入。第二个字符将用tag= 1加入,依此类推 演示样例:

LabelBMFont *label =LabelBMFont::create("Bitmap Font Atlas" , "bitmapFontTest.fnt");
Sprite *char_B = label->getChildByTag(0); // character 'B'
Sprite *char_m = label->getChildByTag(3); // character 'm'

LabelAtlas标签

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1ODI5NzAzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

介绍

LabelAtlas是最快加入到cocos2d的标签,但它被BitmapFontAtlas所代替。LabelAtlas保持向后兼容性。可是你应该使用BitmapFontAtlas代替。

创建一个LabelAtlas标签

LabelAtlas* LabelAtlas::create(const char *string, const char *charMapFile, unsigned int itemWidth, int unsigned itemHeight, unsigned int startCharMap);

事例:

LabelAtlas *label1 = LabelAtlas::create ("Hello World","tuffy_bold_italic-charmap.png",48,64 ,' ');

CharMapFile

  • charMapFile是一个包括了全部的字符的图像文件,每一个字符依据其ASCII值排序,图像不能包括超过256个字符
  • itemWidth是字符的宽度(以像素为单位)
  • itemHeight是字符的高度(以像素为单位)
  • startCharMap是在地图的第一个字符。

LabelTTF 与 LabelAtlas

LabelTTF和LabelAtlas之间的主要差别是地图集版本号(像全部其它的地图集类),使用一个预渲染全部字符的大纹理来绘制一个字符串。这意味着。画图的速度要快得多。由于假设你画100个标签,图形处理器不会读取100个纹理,但仅仅是在内存中保持一个纹理。可是,这也意味着,全部的字母将有一个固定的大小。

假设你想要避开固定大小的限制。使用CCBitmapFontAtlas。

LabelTTF为每一个标签创建一个纹理。因而LabelAtlas使用所提供的纹理(包括全部字符),能高速地渲染文字,因此使用LabelAtlas减少了内存消耗。

时间: 2024-10-09 07:12:16

cocos2d-x-3.1 Text Labels(官方正式译文)的相关文章

Photoshop CS6最新官方正式中文破解版(32位、64位)

Photoshop是强大的图形处理软件,在前端开发领域中,主要用于页面的图形设计与网站UI切图. 目前最新版为Adobe Photoshop CS6 在CS6中整合了其Adobe专有的 Mercury图像引擎,通过显卡核心GPU提供了强悍的图片编辑能力. 但是相对于CS5来说,操作上发生了一定程度的变化,所以建议使用时仔细查看说明文档. 此次提供的版本为官方正式中文版,非汉化版.精简版.绿色版.包含Photoshop CS6中的所有组件与素材. 安装时请断开网络,并选择安装试用版.待软件全部安装

Dreamweaver CS6最新官方正式中文破解版(32位、64位)

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 Dreamweaver 是前端开发的必备软件,没有之一. 目前最新版本为CS6,与CS5相比多了

Red Hat Enterprise Linux 官方正式版镜像下载

Red Hat Enterprise Linux是美国红帽公司开发的商业市场导向的Linux发行版,为方便大家学习研究,整理分享历代红帽官方正式版镜像给有需要的朋友们. 下载地址:https://www.wanghualang.com/red-hat-enterprise-linux.html 原文地址:https://www.cnblogs.com/wanghualang/p/11967335.html

Windows 10 RTM 官方正式版

Windows 10 各版本区别: Windows 10 家庭版:供家庭用户使用Windows 10 专业版:供小型企业使用 在家庭版基础上增加了域账号加入.bitlocker.企业商店等功能Windows 10 企业版:供中大型企业使用 在专业版基础上增加了DirectAccess,AppLocker等高级企业功能Windows 10 教育版:供学校使用 (学校职员, 管理人员, 老师和学生) 其功能几乎和企业版一模一样 Windows 10 专业版/企业版 产品密钥及激活 专业版激活KMS:

Git 2.8 官方正式版发布啦啦啦!!!!

Git 2.8 正式版发布了,相信这对于所有热衷于使用 Git 作为开源代码管理平台的朋友们无疑是一个巨大的 Surprise.我看到这个消息的时候也是非常的激动,立马把此文奉献给大家,欢迎持续关注我们的网站. 根据 Jeff King 的公告,在超过 70位 Git 代码贡献者的帮助下,新版本的 Git 具有多种全新的功能,修复了很多之前的 BUG,同时其他很多方面也有了很大改进. 据了解:新版本的 Git 2.8 增加了一个并行读取模块,当我们在使用 “git submodules” 命令的

CentOS_6.5官方正式版ISO镜像下载

作者:蓝精灵 2014年1月3日 浏览:2157 次 分类:Linux系统 CentOS 6.5 正式版发布了,该版本基于 RHEL 6.5 镜像下载地址: http://mirrors.usc.edu/pub/linux/distributions/centos/6.5/isos/ i386为32位版本 X86_64为64位版本 旧版下载地址 http://mirrors.usc.edu/pub/linux/distributions/centos

Go 1.4 正式版发布,官方正式支持 Android

Go 1.4 正式发布啦,是第五个 Go 的稳定版本,与上一个稳定版本 Go 1.3 相隔 6 个月.Go 1.4 包括一些小的语言改进,支持更多的操作系统和处理器架构:改进了工具链和库.同时,Go 1.4 也优化了稳定性,编译和运行方面都没有修改,跟 Go 1.3 是一样的.更多详情请看 Go 1.4 发行说明. Go 1.4 最值得关注的特性是官方支持 Android.语言方面的改进是 for-range 循环方面的语法改进.Go 命令现在有了一个新的子命令:go generate.同时还有

sublime Text 3 官方版 3114 注册码

—– BEGIN LICENSE —– Anthony Sansone Single User License EA7E-878563 28B9A648 42B99D8A F2E3E9E0 16DE076E E218B3DC F3606379 C33C1526 E8B58964 B2CB3F63 BDF901BE D31424D2 082891B5 F7058694 55FA46D8 EFC11878 0868F093 B17CAFE7 63A78881 86B78E38 0F146238 BA

[转]微信JSAPI 微信内置JSAPI 2015年1月官方正式API接口,分享完整实例

FROM : http://www.oschina.net/code/snippet_2276613_45290 HTML通过微信,分享朋友圈出发此JSAPI <?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourAppSecret"); $signPackage = $jssdk->GetSignPackage(); ?> <!DOCTY