我设计了一个设置窗口的布局,用弹出按钮和不在其中的内容,我想通过为设置菜单创建一个单独的类来避免spagetti代码。我不太清楚如何做到这一点。我到目前为止尝试在swift中创建一个类型为sknode的类,但不知道从那里去哪里
class menu:SKNode {
let button = SKSpriteNode(imageNamed:"button")
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(){
super.init()
var fixedSize = self.frame.width/11
background.size = CGSizeMake(self.frame.width-fixedSize, self.frame.size.height-fixedSize)
background.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
self.addChild(background)
}
}
//In the main method i said let settings = menu() self.addChild(settings) background sprite doesn't show
答案 0 :(得分:1)
您需要一个名为Menu的SKNode,它将包含所有按钮,图像等。您必须创建一个SKNode。您希望菜单中包含的所有内容都必须将其作为子项添加到菜单中(因此菜单类中的self.addChild(button)
)。
然后,在您的场景类中,您必须创建一个菜单对象并将其添加为子self.addChild(menu)
。
您可以使用菜单类来控制实现touchesBegan
方法的菜单按钮的触摸,并将userInteractionEnabled
设置为true
,这样您就可以将其与场景所有菜单UI和逻辑。