2013-08-05 36 views
1

這樣的:爲什麼CCLabelBMFont不能啓動新行王氏「 n」

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文件中的文本是「你好\ n世界」

它顯示相同的(「你好\ n世界」)。

但是,如果我更換[objectDictionary objectForKey:@ 「文本」]「你好\ n世界」,它顯示在兩行。

我還將「\ n」更改爲「/ \ n」或「\ n」,但它仍然無效。

回答

1

嘗試更換[objectDictionary objectForKey:@"Text"]

[NSString stringWithString:[objectDictionary objectForKey:@"Text"]] 
+0

它不起作用。 – hxy060799

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:@「_」)

例如您的字典中的文字應該是這樣的

其他line_and Word_Words現在另一條線。

我沒有測試過,但希望它有助於讓你在正確的軌道:)

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論壇。目前我不記得直接鏈接到帖子。但是,一定要通過搜索多行來獲得它。我知道有人(可能是馬克)做了不錯的工作,但那是針對較早版本的cocos2d。