http://blog.sina.com.cn/s/blog_7b9d64af0101f3ky.html
在Cocos2d中,很想创建自己的字体效果(想图片一样,带火焰效果,锯齿效果等等,美工做出来的图的字体效果)!并且显示出来。
那么,可以使用CCLabelAtlas来帮助我们来完成这项工作!
先贴代码:
CCLabelAtlas*label = [CCLabelAtlaslabelWithString:@"Text"
startCharMap:32];在Cocos2d中,很想创建自己的字体效果(想图片一样,带火焰效果,锯齿效果等等,美工做出来的图的字体效果)!并且显示出来。
那么,可以使用CCLabelAtlas来帮助我们来完成这项工作!
先贴代码:
// 使用CCLabelAtlas来创建label对象
CCLabelAtlas *label = [CCLabelAtlas labelWithString:@"Text"
charMapFile:@"tuffy_bold_italic-charmap.png"
itemWidth:48
itemHeight:64
startCharMap:32];
1.CCLabelAtlas类与CCLabelTTF类的区别
1. CCLabelAtlas渲染速度要快于CCLabelTTF。
2. CCLabelAtlas字符宽度和高度都是固定的,因为是基于图片的。
3. CCLabelAtlas字符可以是任意形式的,因为是基于图片的。
2. CCLabelAtlas的显示原理
CCLabelAtlas *label = [CCLabelAtlas labelWithString:@"Text"
charMapFile:@"tuffy_bold_italic-charmap.png"
itemWidth:48
itemHeight:64
startCharMap:32];
参数说明:
labelWithString:我们要设置的文本字体。
charMapFile:关联的字符集的图片。
itemWidth:每一字符图片占用的宽度px。
itemHeight:每个字符图片占用的高度px
startCharMap:图片开始的字符的ASCII码。
每个CCLabelAtlas关联一个图片,图片按照ASCII码的顺序排列。
CCLabelAtlas-显示自定义字体的文本-Cocos2d
startCharMap开始指定了开始字符的ASCII码,并且根据itemWidth和itemHeight来顺序排列各个字符的顺序。
比如,上例中:
开始ASCII码为32,为空格。ASCII码为34的就是“!”号。根据itemWidth和itemHeight将得到图片的不同区域小块来代表相应的字符。
在显示字符阶段,将labelWithString参数的值(即:要显示的文本)进行遍历,每个字符都转化为相应的ASCII码,并且,匹配各个图片小块,来显示。
1.CCLabelAtlas类与CCLabelTTF类的区别
1.
2.
3.
2.
参数说明:
labelWithString:我们要设置的文本字体。
charMapFile:关联的字符集的图片。
itemWidth:每一字符图片占用的宽度px。
itemHeight:每个字符图片占用的高度px
startCharMap:图片开始的字符的ASCII码。
每个CCLabelAtlas关联一个图片,图片按照ASCII码的顺序排列。
startCharMap开始指定了开始字符的ASCII码,并且根据itemWidth和itemHeight来顺序排列各个字符的顺序。
比如,上例中:
开始ASCII码为32,为空格。ASCII码为34的就是“!”号。根据itemWidth和itemHeight将得到图片的不同区域小块来代表相应的字符。
在显示字符阶段,将labelWithString参数的值(即:要显示的文本)进行遍历,每个字符都转化为相应的ASCII码,并且,匹配各个图片小块,来显示。