2016-01-29 2 views
0

Я пытаюсь добавить SKLabelNode как ребенок SKSpriteNode:SKLabelNode не появляется на SKSpriteNode быстрой

var mainNode = SKSpriteNode() 

override func didMoveToView(view: SKView) { 

    mainNode = SKSpriteNode(color: UIColor.redColor(), size: self.size) 
    mainNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame)) 
    mainNode.zPosition = -2 
    mainNode.name = "MainNode" 
    self.addChild(mainNode) 

    let myLabel = SKLabelNode(fontNamed:"Chalkduster") 
    myLabel.text = "Hello, World!" 
    myLabel.fontSize = 45 
    myLabel.position = CGPoint(x:CGRectGetMidX(mainNode.frame), y:CGRectGetMidY(mainNode.frame)) 

    mainNode.addChild(myLabel) 
} 

Но SKLabelNode не появляется. Я попытался изменить его zPosition, но он все равно не работает.

Если добавить ярлык на самой сцене (self.addChild(myLabel)) он работает просто отлично

+0

В 'viewDidLoad' в контроллере представления, добавьте' scene.size = view.frame.size' в 'если пусть scene ... "и установите положение' myLabel' 'CGPointZero'. – 0x141E

+0

@ 0x141E, спасибо, это сработало! Пожалуйста, опубликуйте это как ответ, чтобы я мог его принять –

ответ

2

Ваша проблема заключается в том, что CGPoint(x:CGRectGetMidX(mainNode.frame), y:CGRectGetMidY(mainNode.frame)) поставить метку вне границ. Так что если вы хотите, чтобы ваш SKLabelNode по горизонтали и по вертикали по центру, вы можете просто сделать это как этот

let myLabel = SKLabelNode(fontNamed:"Chalkduster") 
myLabel.text = "Hello, World!" 
myLabel.fontSize = 45 
myLabel.horizontalAlignmentMode = .Center 
myLabel.verticalAlignmentMode = .Center 
mainNode.addChild(myLabel) 
Смежные вопросы