SKLabelNode定位无法按预期工作

时间:2014-02-28 20:34:52

标签: objective-c sprite-kit sknode sklabelnode

我正在制作游戏,我需要实现顶部栏,持有得分和其他内容的详细信息。

我的顶栏应该有以下(从左到右):   - 50x50图标,根据级别更改,但大小相同   - 带有一些文本根据级别变化的标签   - ......其他元素

问题在于,当标签文字发生变化时,标签有时离图标太远,而其他时间则超过图标(取决于文字长度)

我以为我理解定位,但显然我没有...

//create array for level text label
levelTextArray = [[NSArray alloc] initWithObjects:@"\"Uuu! Bubbles!\"",@"\"Noob\"",@"\"I’m getting it..\"",@"\"This is easy\"",@"\"Wha?\"",@"\"It’s ooon now!\"",@"\"Come on..\"",@"\"Dude…\"",@"\"You’re pushing it..\"",@"\"I’ll show you!!\"",@"\"AAAAAAA!!!\"",@"\"Holy Bubbles… \"",@"\"Ninja mode on!\"",@"\"I’m on fire!!\"",@"\"The wheel's spinning, but the hamsters dead. \"", nil];

//add level text label
levelTextLabel = [[SKLabelNode alloc] init];
levelTextLabel.text = levelTextArray[0];
levelTextLabel.position = CGPointMake(60, CGRectGetMidY(scoreImage.frame)+5);

levelTextLabel.fontColor = [UIColor colorWithRed:0/255.0f green:1/255.0f blue:0/255.0f alpha:1.0f];
levelTextLabel.fontName = @"Noteworthy-Light";
levelTextLabel.fontSize = 14.0;
[self addChild:levelTextLabel];

在这种情况下,scoreImage是图标。另外..为了使图像完全出现在视图中,我将其定位如下:

  scoreImage = [[ SKSpriteNode alloc] initWithImageNamed:levelText];
    scoreImage.name = @"LevelImage";
    scoreImage.size = CGSizeMake(50, 50);
    scoreImage.position = CGPointMake(0+scoreImage.size.width/2, CGRectGetMaxY(self.frame)-scoreImage.size.height/2);

我觉得我在这里做错了。

感谢任何帮助。

P.S。标签文本以及图标图像根据-(void)update:(CFTimeInterval)currentTime {

中的级别进行更改

1 个答案:

答案 0 :(得分:6)

尝试设置horizontalAlignmentMode的{​​{1}}:

SKLabelNode

默认值为levelTextLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeLeft;