2014-02-28 71 views
3

我正在開發一款遊戲,並且我需要實現頂級的酒吧,拿着像比分和其他東西的細節。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是這種情況下的圖標。 Also..for形象,在視圖中完全顯示我定位它是這樣的:

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 {

回答

6

嘗試設置SKLabelNodehorizontalAlignmentMode

levelTextLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeLeft; 

默認爲SKLabelHorizontalAlignmentModeCenter