1

像这样:

    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”)。

但是,如果我将[objectDictionary objectForKey:@"Text"]替换为"Hello \n World",它将显示为两行。

我还将 "\n" 更改为"/\n" 或 "\n",它仍然不起作用。

4

3 回答 3

1

尝试替换[objectDictionary objectForKey:@"Text"]为:

[NSString stringWithString:[objectDictionary objectForKey:@"Text"]]
于 2013-08-05T14:10:55.407 回答
1

在 cocos2d v2.0 中你可以用 \n 换行。在我的项目中,我只是使用 like

CCLabelBMFont *lblBonus = [CCLabelBMFont labelWithString:[NSString stringWithFormat:@"BONUS \n %d",bonusScore] fntFile:@"myCustom.fnt"];
lblBonus.position = ccp(.....);
[self addChild:lblBonus];

cocos2d 论坛中很少有关于内容对齐的帖子。目前我不记得帖子的直接链接。但可以肯定的是,你会通过搜索 multiline 得到它。我知道有人(可能是 Mark)做得很好,但那是针对旧版本的 cocos2d。

于 2013-09-19T20:05:00.550 回答
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 在另一行_现在是另一行。

我尚未对其进行测试,但希望它可以帮助您走上正轨:)

于 2013-08-07T20:17:52.273 回答