大佬教程收集整理的这篇文章主要介绍了Cocos2d-x 3.0-新的Label-Cocos2d-x官方文档,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
https://github.com/chukong/cocos-docs/blob/master/manual/framework/native/v3/text-label/zh.md
欢迎大家斧正错误,提交PR。
在游戏开发中,文字起了非常重要的作用。游戏介绍、游戏中的提示以及对话等都需要用到文字,Cocos2d-x中给文字渲染提供了灵活的机制,既可以用系统文字,也可以使用自定义渲染字体。另外,文本标签还可用来初始化菜单。
在开发中,我们最常用的4种文本标签是:Label,LabelAtlas,LabelTTF和LabelBMFont,其中3.0尤其提倡使用Lable代替LabelTTF和LabelBMFont,因为Label在渲染速度上较其快。以下我们详细讲解下它们的使用方法。
3.0中你可以使用Label类创建LabelTTF和LabelBMFont中任意一种标签,与他们2种不同的是,新标签类继承于SpriteBatchNode类,这样一来大大提高了渲染速度。以下代码列举几种创建Label的方法:
auto newLabel1 = Label::create(<span class="String" style="color:#dd1144;">"New Label"</span>,<span class="String" style="color:#dd1144;">"Arial"</span>,<span class="number" style="color:#09999;">30</span>); <span class="indent"> </span>auto newLabel2 = Label::createWithBMFont(<span class="String" style="color:#dd1144;">"bitmapFontTest.fnt"</span>,<span class="String" style="color:#dd1144;">"New Label"</span>); <span class="indent"> </span>newLabel1->setPosition(Point(visibleSize.width / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">x</span>,visibleSize.height / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">y</span>)); <span class="indent"> </span>newLabel2->setPosition(Point(visibleSize.width / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">x</span>,visibleSize.height / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">y</span> - <span class="number" style="color:#09999;">100</span>)); <span class="indent"> </span>addChild(newLabel1); <span class="indent"> </span>addChild(newLabel2); <span class="indent"> </span>TTFConfig ttfConfig; <span class="indent"> </span>ttfConfig.fontSize = <span class="number" style="color:#09999;">30</span>; <span class="indent"> </span>ttfConfig.fontFilePath = <span class="String" style="color:#dd1144;">"Paint Boy.ttf"</span>; <span class="indent"> </span>auto label2 = Label::createWithTTF(ttfConfig,<span class="String" style="color:#dd1144;">"New Label"</span>); <span class="indent"> </span>label2->setPosition(Point(visibleSize.width / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">x</span>,visibleSize.height / <span class="number" style="color:#09999;">2</span> + origin.<span class="keyword" style="font-weight:bold">y</span> + <span class="number" style="color:#09999;">100</span>)); <span class="indent"> </span>addChild(label2);
上面的例子中,我们使用新标签类创建了一个LabelTTF标签和LabelBMFont标签:
以上介绍了新标签类后,我们来看下以前的标签类。尽管3.0使用了新标签类,但是为了向下兼容,一些以前的标签类仍然可以使用。
LabelAtlas类是使用图片作为文字,该类直接使用图片初始化文字对象。此类支持两种文件类型来初始化:
以下代码使用两种不同文件初始化一个文字对象:
auto label1 = LabelAtlas::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(<span class="String" style="color:#dd1144;">"PNG Test"</span>,<span class="String" style="color:#dd1144;">"tuffy_bold_italic-charmap.png"</span>,<span class="number" style="color:#09999;">48</span>,<span class="number" style="color:#09999;">64</span>,<span class="String" style="color:#dd1144;">' '</span>);</span> <span class="indent"> </span>label1->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y)); <span class="indent"> </span>addChild(label1); <span class="indent"> </span>auto label2 = LabelAtlas::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(<span class="String" style="color:#dd1144;">"Plist Test"</span>,<span class="String" style="color:#dd1144;">"tuffy_bold_italic-charmap.plist"</span>);</span> <span class="indent"> </span>label2->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y - 100)); <span class="indent"> </span>addChild(label2);
下面解释下LabelAtlas::create()的5个参数:
LabelTTF类使用系统中自带的字体,如果创建LabelTTF对象时未给出字体名字或者给出的名字系统中不存在,则使用引擎默认字体初始化对象。
引擎提供两种方式创建LableTTF:
以下代码分别使用LabelTTF和Label来创建Label:
auto label1 = LabelTTF::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(<span class="String" style="color:#dd1144;">"Create with LabelTTF"</span>,<span class="number" style="color:#09999;">30</span>);</span> <span class="indent"> </span>label1->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y)); <span class="indent"> </span>addChild(label1); <span class="indent"> </span>TTFConfig ttfConfig; <span class="indent"> </span>ttfConfig.fontSize = 30; <span class="indent"> </span>ttfConfig.fontFilePath = "Paint Boy.ttf"; <span class="indent"> </span>auto label2 = Label::createWithTTF(ttfConfig,"<span class="operator"><span class="keyword" style="font-weight:bold">Create</span> <span class="keyword" style="font-weight:bold">with</span> Label<span class="String" style="color:#dd1144;">"); <span class="indent"> </span>label2->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y - 100)); <span class="indent"> </span>addChild(label2);</span></span>
LabelBMFont类是一个基于位图的字体图集,是一个包含所有你需要于坐标数据一起显示在屏幕上的字符的图像,它允许字符从主图中剪切出来。
以下代码用来创建LabelBMFont对象:
auto label = LabelBMFont::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(<span class="String" style="color:#dd1144;">"BMFont Test"</span>,<span class="String" style="color:#dd1144;">"bitmapFontTest.fnt"</span>);</span> label->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y)); addChild(label);
Cocos2d-x支持许多使用fnt文件格式的位图字体,下面介绍下如何使用Glyph Designer一款Mac下的字体设计器来创建字体图集(Windows下可使用Hiero和BMFont):
在游戏开发中,标准字体不需要频繁更改时使用LabelTTF非常合适。在需要定制文字或者在频繁改变文字内容时需要使用LabelBMFont。但3.0的新标签类为你解决了这个问题,你无须再考虑选择那种标签,只需使用新标签类即可。
文字标签类的另外一个作用是可以初始化菜单,关于菜单的用法在此不做详细讲解,下面代码使用文字标签初始化菜单:
String" style="color:#dd1144;">"bitmapFontTest.fnt"</span>);</span> auto menuItemLabel = MenuItemLabel::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(label);</span> auto menu = Menu::<span class="operator"><span class="keyword" style="font-weight:bold">create</span>(menuItemLabel,<span class="keyword" style="font-weight:bold">NULL</span>);</span> menu->setPosition(Point(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y)); addChild(menu);
以上是大佬教程为你收集整理的Cocos2d-x 3.0-新的Label-Cocos2d-x官方文档全部内容,希望文章能够帮你解决Cocos2d-x 3.0-新的Label-Cocos2d-x官方文档所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。