喜欢这个:
CCLabelBMFont *label=[CCLabelBMFont labelWithString:[objectDictionary objectForKey:@"Text"] fntFile:@"BasicFont.fnt"];
[label setScale:[[objectDictionary objectForKey:@"Scale"]floatValue]];
[label setPosition:ccp(objectPosition.x,objectPosition.y)];
[self addChild:label];
我尝试从plist文件加载文本。 plist文件中的文本是“Hello \ n World”
它显示相同的内容(“Hello \ n World”)。
但是,如果我用“Hello \ n World”替换 [objectDictionary objectForKey:@“Text”] ,它会以两行显示。
我还将“\ n”更改为“/ \ n”或“\ n”,但它仍无效。
答案 0 :(得分:1)
尝试将[objectDictionary objectForKey:@"Text"]
替换为:
[NSString stringWithString:[objectDictionary objectForKey:@"Text"]]
答案 1 :(得分:1)
在cocos2d v2.0中,你可以用\ n打破这一行。在我的项目中,我只是喜欢使用
CCLabelBMFont *lblBonus = [CCLabelBMFont labelWithString:[NSString stringWithFormat:@"BONUS \n %d",bonusScore] fntFile:@"myCustom.fnt"];
lblBonus.position = ccp(.....);
[self addChild:lblBonus];
要进行内容对齐,cocos2d论坛中的帖子很少。目前我不记得直接链接到帖子。但是你肯定会通过搜索多行来获得它。我知道有人(可能是Mark)做得很好,但那是旧版本的cocos2d。
答案 2 :(得分:0)
也许这会有所帮助 字典不理解并将其读作文字“n”,而不是字符“n”。
我确信有更好的方法让文本中断工作 但你可以试试这个......
NSString *Text = [dictionary objectForKey:key];
NSArray *strings = [Text componentsSeparatedByString:@"_"];
if ([strings count] >= 2)
Text = [NSString stringWithFormat:@"%@n%@",[strings objectAtIndex:0],[strings objectAtIndex:1]];
你可以通过在文本中添加一个下划线来获取换行符(这是使用componentsSeparatedByString分解行的方式:@“_”)
例如,字典中的文字应该是这样的
其他行上的Word_Words,现在是另一行。
我没有对它进行过测试,但希望它能帮助您走上正确的轨道:)