我试图在cocos2d 1.0中使用CCLabelTTF创建一个多行标签。我试过我遇到的例子,但似乎都没有用。这是我有的东西
CCLabelTTF *storeLabelHeading = [CCLabelTTF labelWithString:@"Here is a really long string that I want to wrap"
dimensions: CGSizeMake(200,0)
alignment: NSTextAlignmentCenter
lineBreakMode: NSLineBreakByWordWrapping
fontName:@"Marker Felt" fontSize: 24];
storeLabelHeading.color = ccc3(0,0,0);
[storeLabelHeading setAnchorPoint:ccp(0,0)];
storeLabelHeading.position = ccp(screenSize.width * 0.35f,
screenSize.height * 0.85);
[self addChild:storeLabelHeading z:kStoreLayer+10];我尝试过各种不同的维度。如果我使用CGSizeMake(0,0),那么标签将显示,但没有包装(我认为这是预期的)。但是任何其他的值都不会显示出来。我做错了什么?
发布于 2013-10-01 17:50:49
根据您的问题,我在cocos2d 2.0中得到了相同的结果,没有单词包装。然而,我把它做得很好:
CCTexture2D *tex =[ [[CCTexture2D alloc]
initWithString:@"Here is a really long string that I want to wrap wrap wrap"
dimensions:CGSizeMake(120, 120)
hAlignment:kCCTextAlignmentCenter
vAlignment:kCCVerticalTextAlignmentCenter
lineBreakMode:kCCLineBreakModeWordWrap
fontName:@"Marker Felt"
fontSize:24 ] autorelease];
CCSprite *spr = [CCSprite spriteWithTexture:tex];
[self addChild:spr];
spr.position=ccp(kScreenWidth/2,kScreenHeight/2);奇怪的是,在通过CCLabelTTF ctor时,它失败了。然而,CCLabelTTF使用它来创建标签。这可能与管道中某个地方的垂直对准不当有关。
ps :这也有效。
CCLabelTTF *storeLabelHeading = [CCLabelTTF labelWithString:@"Here is a really long string that I want to wrap"
dimensions: CGSizeMake(120,120)
hAlignment: kCCTextAlignmentLeft
lineBreakMode: kCCLineBreakModeWordWrap
fontName:@"Marker Felt" fontSize: 24];
storeLabelHeading.verticalAlignment=kCCVerticalTextAlignmentCenter;
storeLabelHeading.color = ccc3(0,0,0);
[storeLabelHeading setAnchorPoint:ccp(0,0)];
storeLabelHeading.position = ccp(kScreenWidth * 0.35f,
kScreenHeight * 0.85);
[self addChild:storeLabelHeading z:1+10];
[storeLabelHeading setString:@"Here is a really long string that I want to wrap wrap wrap"];在将垂直对齐设置为中间“未中断”CCLabelTTF ctor后设置字符串。
发布于 2013-10-01 15:47:08
你也需要给出标签的高度尺寸。现在你要通过200,0,尝试在一个非零的高度。
https://stackoverflow.com/questions/19120369
复制相似问题