cocos2dx显示CCLabelTTF的指定宽度
来源:互联网 发布:爱淘宝的红包怎么领取 编辑:程序博客网 时间:2024/04/28 20:44
好久不写文章了,现在我用的还是cocos2dx2.2.2版本进行开发,所以一些小功能还是写出来了
如果一个CCLabelTTF的长度太长了,但是全部显示出来,可能效果不好看,所以这里就根据固定长度显示,超过的自动抹去。
方法如下:
void setNameLength(std::string nameStr)
{
int charNum =0;
int lMax =0;
CCLabelTTF * nameTTF =CCLabelTTF::create(nameStr.c_str(),"Arial", 20);
float strLength = nameTTF->getContentSize().width;
if (strLength > 100) {
charNum =NAME_DOWN_MAX;
lMax = (180<strLength)?180:strLength;
}
else
{
lMax = strLength;
}
printf("lMax is %d\n", lMax);
std::string string1 = nameStr;
std::string string2;
if (strLength>lMax)
{
const char * s = nameStr.c_str();
int i = 0, j =0;
while (s[i])
{
if ((s[i] &0xc0) != 0x80)
{
j++;
if (j>1) {
std::string string3 = string1.substr(0,i).c_str();
nameTTF = CCLabelTTF::create(string3.c_str(),"Arial", 22);
strLength = nameTTF->getContentSize().width;
if ((strLength)>lMax) {
break;
}
else
{
string2 = string1.substr(0,i).c_str();
}
}
}
i++;
}
}
else
{
string2 = nameStr;
}
CCLabelTTF* pLabelTTF = CCLabelTTF::create(string2.c_str(), "Arial", 32);
pLabelTTF->setPosition(ccp(240, 160));
this->addChild(pLabelTTF);//这个pLabelTTF就是显示固定宽度的区域
}
当然这个功能也可以用遮罩实现,也比较简单
- cocos2dx显示CCLabelTTF的指定宽度
- cocos2dx CCLabelTTF显示中文乱码
- cocos2dx CCLabelTTF自定义字体的使用
- cocos2dx中CCLabelTTF多行文本显示崩溃问题
- 关于Quick-cocos2dx 2.2.6中CCLabelTTF文字在ios或ipad中显示不全的问题
- Cocos2dx-CCLabelTTF变黑
- CCLabelTTF上的字体居中显示
- CCLabelTTF和CCLabelAtlas的显示区别
- cclabelttf字体不显示的解决办法
- cocos2dx中CCLabelTTF的描边和阴影
- cocos2dx windows phone平台下CCLabelTTF自动换行的实现
- Cocos2dx CCLabelAtlas字体与CCLabelTTF字体的使用方法
- 指定宽度的新闻标题
- cocos2dX UI控件之CCLabelTTF
- cocos2dX UI控件之CCLabelTTF
- cocos2dx CCLabelTTF 字体自动换行
- 字符串在指定区域内按照指定的字体显示时,需要的高度和宽度
- 文本显示之CCLabelTTF
- 【C】分治算法
- 【开发工具】分布式编译-IncrediBuild
- 浅谈Java的面向对象
- 判断一个点在三角形内
- HDOJ 1847 Good Luck in CET-4 Everybody!(巴什博弈)
- cocos2dx显示CCLabelTTF的指定宽度
- 第六周项目3括号的匹配
- IOS引用计数的小细节
- 【Andoid杂谈】Android TextView中显示超文本(HTML)内容
- curl CURLOPT_WRITEFUNCTION的一些问题
- 三层架构
- HDU 5504 GT and sequence
- sql server 日期显示格式
- Android 6.0 新增API 简介(5)