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

前端之家收集整理的这篇文章主要介绍了Cocos2d-x学习笔记(六)-------->Label控件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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;
	}
效果
原文链接:https://www.f2er.com/cocos2dx/346818.html

猜你在找的Cocos2d-x相关文章