首页 > 代码库 > iOS_31_cocos2d_Label

iOS_31_cocos2d_Label

最终效果图:

cocos2d v3中Label只有2种:
一、CCLabelTTF

注意事项:

CCLabelTTF,可以随时setString,改变文字,

但是:非常耗性能,

因为,它会为每一个新的string,创建一个新的纹理,进行渲染,

因此,不能频繁地改变文字的内容;

只有显示固定的文字时,才建议使用CCLabelTTF

二、CCLabelBMFont

使用注意事项:

BMFont是专门为了频繁更换label内容而生,

因为,每一个字符如ab1都是一个sprite,

都对应着一个图片/纹理,

因此会以占用更多的内存为代价,

从而提高了渲染的效率(因为一个sprite对应的纹理只需渲染一次)

另外一个好处是:

由于每一个字符都是一个精灵,所以可以runAction

这里面用到的fnt可以使用Glyph Designer软件】生成

BMFont不能设置大小size,但是可以通过设置scale缩放

并且,BMFont不能设置高度,仅能设置宽度


CCLabelBMFont需要用到的软件:

Glyph Designer (类似的工具还有Hiero)

glyph n.象形文字,象形符号


软件默认打开界面:
使用了抗锯齿、径向填充(Gradient Fill Glyph)

实心填充(solid fill)
一般情况下:
会先用小字号(如64)生成一个非视网膜屏幕下的图片,如a.png
再用大字号(如128)生成视网膜屏幕下的图片,如a-hd.png

视网膜屏幕下用的a-hd.png,字号大小是上面的2倍,为128


点击【Export】,生成cocos2d使用的fnt文件

此时,在Documents路径下会生成2个文件
.fnt和.png
其中.fnt就是对图片的描述文件,描述每一个字符char在图片中的位置等信息

用文件编辑器打开.fnt,可以看到该文件描述的File是"Marion.png"













在cocos2d v3中,Atlas已经不再使用,这仍简单介绍一下

Atlas 使用的是plist文件,

它要求图片里面每一个char要有相同的宽度和高度,并且按ascii顺序排列 ,

因为Atlas就是根据ascii值到Plist中去截取对应位置的对应size的图片,作为文字使用

Atlas适合于 像高速地动态地显示少数的几个数字,如左下角的帧率(只有0~9),这样的文字(字符)










iOS_31_cocos2d_Label