[cocos2d] 显示状态与文字

前言:

对于显示数值与文字一般有三种方式可以使用:

CCLabelTTF 、CCLabelBMFont 、CCLabelAtlas

详细区别可参考:cocos2d 中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)

而对于不断变化的数值与文字,由于CCLabelTTF的执行效率较低,一般使用后两者。

如果只是要显示变化数值,例如游戏得分,角色生命值变化等等,CCLabelBMFont就显得大材小用了,因为CCLabelAtlas足够应付了。

方法:对于字体要求不大而且只需显示数值的

由于cocos2d已经自带了字体文件,对于字体要求不高的话可以直接使用其字体。旧版的cocos2D用fps_images.png,但是新版不再包含此文件,转而是用一个类文件ccFPSImages.m以16进制的形式储存在unsigned char cc_fps_images_png[]中。

ccFPSImages.m

打开文件可以看到

1 unsigned char cc_fps_images_png[] = {
2   0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
3   0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20,
4   0x08, 0x06, 0x00, 0x00, 0x00, 0xfd, 0xa9, 0xa6, 0xe4, 0x00, 0x00, 0x0a,。。。。。。
5 //此处仅节选部分内容
6 
7 }
ccFPSImage.m

PNG文件头标识 (8 bytes)   89 50 4E 47 0D 0A 1A 0A

由于fps状态显示是游戏开始时便初始化,所以textureCache中已经有该贴图的缓存,所以直接调用缓存即可。

CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:@"cc_fps_images"];
CCLabelAtlas *label = [[CCLabelAtlas alloc] initWithString:@"0" texture:texture itemWidth:12 itemHeight:32 startCharMap:'.'];
label.position  = .....
..
[self addChild:label...];

 

 

 

 

posted @ 2013-08-29 16:46  CreeperChange  阅读(473)  评论(0编辑  收藏  举报