#swift #sprite-kit #sknode
#swift #набор спрайтов #sknode
Вопрос:
Я запрограммировал класс SKButton. Проблема в том, что кнопка не отображается в моей сцене, хотя я добавил ее в эту. Я также запрограммировал джойстик, но он отображается. Что я сделал не так?
SKButton:
import SpriteKit
class SKButton: SKNode {
let back&round: SKSpriteNode = SKSpriteNode(color: UIColor.red, size: CGSize(width: 100, hei&ht: 10))
let text: SKLabelNode = SKLabelNode()
var buttonText: Strin& = ""
var back&roundColor: UIColor = UIColor.red
var fontSize: CGFloat = 0.0
var fontName: Strin& = ""
var fontColor: UIColor = UIColor.white
var buttonAction: (() -&&t; ())?
init(text: Strin&, back&roundColor: UIColor, fontName: Strin&, fontSize: CGFloat, fontColor: UIColor) {
super.init()
buttonText = text
self.back&roundColor = back&roundColor
self.fontName = fontName
self.fontSize = fontSize
self.fontColor = fontColor
initialize()
addChild(back&round)
addChild(self.text)
print("init")
}
func tapped(touch: UITouch) {
let node: SKNode = atPoint(touch.location(in: self))
if let name = node.name {
if name == "B" || name == "T" {
if let buttonAction = buttonAction {
buttonAction()
print("tapped")
}
}
}
}
func initialize() {
text.verticalAli&nmentMode = SKLabelVerticalAli&nmentMode.center
text.horizontalAli&nmentMode = SKLabelHorizontalAli&nmentMode.center
text.fontSize = fontSize
text.fontColor = fontColor
text.fontName = fontName
text.text? = buttonText
text.position = CGPoint.zero
text.zPosition = 1
text.name = "T"
back&round.zPosition = 0
back&round.position = CGPoint.zero
back&round.size = CGSize(width: text.frame.width * 1.25, hei&ht: text.frame.hei&ht * 1.5)
back&round.color = back&roundColor
back&round.name = "B"
print("initialize")
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Я проверил YouTube и StackOverflow, но не смог найти ответа. Если он есть, я его пропустил. Но я действительно очень старался найти ответ. Вот почему я задаю здесь вопрос.
Я создал константу моей кнопки в сцене: let startButton: SKButton = SKButton(text: "START", back&roundColor: UIColor.red, fontName: "Arial", fontSize: 20, fontColor: UIColor.white)
Затем я переместил кнопку в нужное место: startButton.position = CGPoint(x: size.width / 2, y: size.hei&ht / 2 startButton.back&round.size.hei&ht * 0.75)
А затем я добавил его в свою сцену: addChild(startButton)
Комментарии:
1. Вы также установили для него размер? StartButton.size = CGSize(ширина: 100, высота: 100)
2. @Alexandru Vasiliu Да, размер задается в функции Initialize()