Cocos2d-x学习笔记(六)-------->Label控件

Cocos2d-x学习笔记(六)-------->Label控件,第1张

概述Label控件 Label:x引擎中用于显示文字信息的控件。Label控件是一组功能相同控件的统称,x引擎在实现Label控件时,选择采用了多种技术实现方式,这些方式的实现细节有很大区别,而且每种技术方式的作用也都不同。 CCLabelAtlas:这是一种根据字符ASCII编码顺序进行索引定位的标签控件,需要有一张图片存放所有将要用到的字体,并且这些字体必须是按照ASCII编码顺序排列的,每个字体 Label控件 Label:x引擎中用于显示文字信息的控件。Label控件是一组功能相同控件的统称,x引擎在实现Label控件时,选择采用了多种技术实现方式,这些方式的实现细节有很大区别,而且每种技术方式的作用也都不同。 cclabelAtlas:这是一种根据字符ASCII编码顺序进行索引定位的标签控件,需要有一张图片存放所有将要用到的字体,并且这些字体必须是按照ASCII编码顺序排列的,每个字体在图片中的宽度,高度以及间距都必须相同。 举个例子:图片中的起始字符是0,图片容纳了一共10个字符,后续的字符就必须是按照ASCII编码排序的0后面的9个字符,即123456789。有了这张图片作为资源,cclabelAtlas类型的控件可以支持0~9全部数字的显示功能。当控件要显示6这个字符时,它能够根据起始字符0计算出6在ASCII编码中排在0的第几位,然后根据字符的宽度高度定位出6对应字体图片的精确位置。 使用:
cclabelAtlas* label1 = cclabelAtlas::create("4.85 Test","Fonts/tuffy_bold_italic-charmap.png",48,64,' ');
其中“4.85 Test”是要显示的内容,tuffy_bold_italic-charmap.png是字体所在的图片,48、64是字体的宽和高,起始定位字符为空字符。 效果:

cclabelTTF:使用系统字体生成图像绘制到屏幕上,其优点是可以指定任意类型的系统内置字体,不需要额外的字体文件,在指定字体不可用时将使用系统默认字体代替。缺点是字体是时事生成的,所以对于实时变化的字符来说需要占用更多的系统开销。在生成这种标签控件时,还可以通过参数指定字体的大小,指定整个显示范围和对其方式,这种Label控件比较适合多行文字的显示。 使用:
cclabelTTF* ttf0 = cclabelTTF::create("Alignment 0\nnew line","Helvetica",12,CCSizeMake(256,32),kCCTextAlignmentleft);
效果:

cclabelBMFont:x引擎中效果最理想,效率最高的一种方案就是BitmapFont,这是一种预生成的字体,使用时配置文件定位找到字体使用的图片区域,不会因为系统实时生成字体而使得游戏效率下降,x引擎内置了对BitmapFont的支持,cclabelBMFont就是对BitmapFont支持的字体标签控件。BitmapFont字体的资源文件由一个*.fnt和对应的*.png文件组成,其中*.fnt文件里是字体的配置信息,而被预先生成好的字体图片都放在*.png图片上。 例:
图片和*.fnt文件可以通过BitmapFont生成工具——HIEro制作。

使用:
cclabelBMFont* label2 = cclabelBMFont::create("00.0","Fonts/bitmapFontTest.fnt");
还可以实时动态的去修改当前要显示的字体内容。
label2->setString("中国");
效果:


多语言支持:x引擎提供了对当前语言的判断功能,他可以判断出当前系统使用的是何种语言。 使用:
cclanguageType currentLanguageType = CCApplication::sharedApplication()->getCurrentLanguage();	switch(currentLanguageType){		case kLanguageEnglish:			labelLanguage->setString("current language is English");			break;		case kLanguageChinese:			labelLanguage->setString("current language is Chinese");			break;	}
效果: 总结

以上是内存溢出为你收集整理的Cocos2d-x学习笔记(六)-------->Label控件全部内容,希望文章能够帮你解决Cocos2d-x学习笔记(六)-------->Label控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1004625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存