创建这种风格的标签:
CCLabelBMFont *label1_=
[CCLabelBMFont labelWithString:@"description: -" fntFile:@"comicsans.fnt" width:270 alignment:kCCTextAlignmentLeft];
和
[label1_ setString:
@"someText\n and some newline \nand another new line too but this is last"];
这个字符串有2个转义字符用于新行。当我设置这个时,我失去了最后2个单词 它显示了类似的东西
someText
and some newline
and another new line too but this is la
所以最后两封信以某种方式丢失了。 这个问题可能是什么原因? cocos2d v2.1(稳定版)的bug还是我在恐怖电影中?如果是这样我该怎么办?
\ r和\ n的效果相同 不知道为什么。你可能知道吗。
如果我不使用\ r \ n转义字符; CCLabelFont字符串显示正确的字符串。不会丢失任何数量的字符拖尾。
所以我的临时解决方案是从字符串修复问题中删除转义字符。 但这不能修复cocos2d v2.1(稳定版)的bug。 我认为如果有\ n转义字符,CCLabel类的类不能计算不稳定。
答案 0 :(得分:0)
自从我使用CCLabelBMFont动画文字输入以来,我遇到了同样的问题。
我意识到只要输入的文字有换行符\n
,CCLabelBMFont就不会输入尾随字符。
我通过简单的黑客解决了这个问题。
首先,我计算要由CCLabelBMFont
显示的文本中的换行符数。
NSRegularExpression *regx = [NSRegularExpression regularExpressionWithPattern:@"\n"
options:0
error:nil];
NSUInteger newlinesCount = [regx numberOfMatchesInString:typeString
options:0
range:NSMakeRange(0, typeString.length)];
然后我只在字符串的末尾添加一些空格,我将要输入。要添加的空格数等于换行符数。
for (int i = 0; i < newlinesCount; i++) {
typeString = [typeString stringByAppendingString:@" "];
}
// This sets the string for the BMFont, it should now display all the characters
// that you wanted to type originally.
[self.labelBMFont setString:typeString];
在cocos2d 2.1上测试