正确使用SpriteKit中的按钮的方法

正确使用SpriteKit中的按钮的方法

问题描述:

我正在创建我的第二个应用程序,但是第一个iOS游戏。我都完成了编码和级别。正确使用SpriteKit中的按钮的方法

但最后我奋力用按钮精灵套件,所以我可以创建共享一样,或者实现它设置菜单,我现在用的一个方法如下证明。

Button = UIButton(type: UIButtonType.custom) 
    Button.frame = CGRect(x: 0, y: 0, width: 50, height: 50) 
    Button.center = CGPoint(x: (self.view?.frame.width)! - 30, y: 60) 
    Button.setImage(UIImage(named: "Pause"), for: UIControlState.normal) 
    Button.addTarget(self, action: #selector(PauseGame), for: UIControlEvents.touchUpInside) 
    self.view?.addSubview(Button) 

现在有了这个按钮的问题是,它是随时启用和显示,无论什么画面或场景我英寸

是否存在使用这些按钮的任何其他方式?

或者,也许我必须用故事板在SpriteKit项目的所有设置,menuscreen,以及额外的按钮(例如赞,分享)?

您正在尝试使用UIKitSpriteKit。这就是为什么当场景改变时按钮没有被移除。行:

self.view?.addSubview(Button) 

将按钮添加到视图,不现场。这很重要,因为视图控制器在视图上显示场景,因此您有1个显示场景的视图(通常)。将按钮添加到视图时,它实际上附加到视图,而不是场景。到一个按钮节点添加到现场,试试这个:

let button = SKSpriteNode(imageNamed: "Paused") 
button.size = CGSize(width: 50, height: 50) 
button.position = CGPoint(x: (self.view?.frame.width)! - 30, y: 60) 
// Whatever else you want to do when setting up the button node 
addChild(button) 

最重要的这里行是:

addChild(button) 

,因为它增加了SKSpriteNode现场。这意味着,当从一个场景转换到另一个场景时,该按钮将不再保持在固定的位置,并且将随场景过渡。