2017-02-11 8 views
1

Я новичок в SpriteKit, и я создаю игру, где я разработал главное меню с эскизом и применил изображение к spritekit в качестве фонового изображения. Каждый раз, когда я помещаю ярлык/текст над изображениями кнопок. Это не работает должным образом. Когда они нажимают на игру, говорят, они будут играть, и когда они проиграют, и начнут все внезапно, эти метки исчезнут.Как сделать текст на кнопке? -SpriteKit

Вот изображение:

Image

Вот мой код

//creating the start game programmatically. 
    let dw_startButton = SKSpriteNode() 

    dw_startButton.name = "dw_startbutton" 

    dw_startButton.position = CGPoint(x: self.frame.midX, y: self.frame.midY) 
    self.addChild(dw_startButton) 

    //Instructions Button 
    let dw_selector = SKSpriteNode() 
    dw_selector.name = "dw_selector" 

    dw_selector.position = CGPoint(x: self.frame.midX, y: self.frame.midY) 
    self.addChild(dw_selector) 

    //Starting text 
    let startText = SKLabelNode(text: "Play!") 
    startText.fontColor = UIColor.white 
    startText.position = CGPoint(x: 50, y: 50) 
    startText.fontSize = 45 
    startText.fontName = "Helvetica-Bold" 
    startText.verticalAlignmentMode = SKLabelVerticalAlignmentMode(rawValue: 1)! 
    startText.name = "dw_startbutton" 
    dw_startButton.addChild(startText) 

    //instructions text 
    let startTexts = SKLabelNode(text: "Insturctions") 
    startTexts.fontColor = UIColor.white 
    startTexts.position = CGPoint(x: 0, y: 0) 
    startTexts.fontSize = 20 
    startTexts.fontName = "Helvetica-Bold" 
    startTexts.verticalAlignmentMode = SKLabelVerticalAlignmentMode(rawValue: 1)! 
    startTexts.name = "dw_selector" 
    dw_selector.addChild(startTexts) 

ответ

0

Вам всегда нужно добавить zPosition ваших спрайтов и этикетки. В противном случае, иногда они будут появляться и в других случаях они могут оказаться за фоном

//creating the start game programmatically. 
let dw_startButton = SKSpriteNode() 
dw_startButton.zPosition = 1 
dw_startButton.name = "dw_startbutton" 
dw_startButton.position = CGPoint(x: self.frame.midX, y: self.frame.midY) 
self.addChild(dw_startButton) 

//Instructions Button 
let dw_selector = SKSpriteNode() 
dw_selector.name = "dw_selector" 
dw_selector.zPosition = 1 
dw_selector.position = CGPoint(x: self.frame.midX, y: self.frame.midY) 
self.addChild(dw_selector) 

//Starting text 
let startText = SKLabelNode(text: "Play!") 
startText.fontColor = UIColor.white 
startText.position = CGPoint(x: 50, y: 50) 
startText.fontSize = 45 
startText.fontName = "Helvetica-Bold" 
startText.verticalAlignmentMode = SKLabelVerticalAlignmentMode(rawValue: 1)! 
startText.name = "dw_startbutton" 
startText.zPosition = 2 
dw_startButton.addChild(startText) 

//instructions text 
let startTexts = SKLabelNode(text: "Insturctions") 
startTexts.fontColor = UIColor.white 
startTexts.position = CGPoint(x: 0, y: 0) 
startTexts.fontSize = 20 
startTexts.fontName = "Helvetica-Bold" 
startTexts.verticalAlignmentMode = SKLabelVerticalAlignmentMode(rawValue: 1)! 
startTexts.name = "dw_selector" 
startTexts.zPosition = 2 
dw_selector.addChild(startTexts) 

//new button 
let newButton = SKSpriteNode(imageNamed: "button_back") 
newButton.zPosition = 1 
newButton.name = "button1" 
newButton.position = CGPoint(x: 100, y: 100) 
self.addChild(newButton) 

let buttonText = SKLabelNode(text: "Play") 
buttonText.fontColor = .white 
buttonText.fontSize = 20 
buttonText.fontName = "Helvetica-Bold" 
buttonText.verticalAlignmentMode = .center 
buttonText.horizontalAlignmentMode = .center 
buttonText.name = "dw_selector" 
buttonText.zPosition = 2 
newButton.addChild(buttonText) 
+0

Я обновил свой ответ с zPosition применена к объектам –

+0

Спасибо, теперь я понимаю, почему нужно zPosition –

+0

свой прием. FYI, если вы следуете некоторым ранним примерам SpriteKit, у них может не быть zPosition на их объектах. Только до того, как iOS 8 они сделали zPosition, требуется –

 Смежные вопросы

  • Нет связанных вопросов^_^