这里我创建了一个包含几个项目的菜单类。我想在主类中显示这些精灵。我通过在touches begin方法中创建一个与sknode类关联的对象来实验这一点,但是当我使用addChild东西在主类中添加菜单对象时,没有任何东西出现。
class menu:SKNode {
let background = SKSpriteNode(imageNamed:"background")
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) nothing shows up
答案 0 :(得分:1)
frame
的{{1}}属性等于SKNode
,因此当您尝试设置背景节点的大小时,它也将最终为CGRectZero
。
解决您的问题的一个简单方法是添加自定义初始值设定项并使用场景大小调用它。
CGRectZero