正确使用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,以及额外的按钮(例如赞,分享)?
答
您正在尝试使用UIKit
的SpriteKit。这就是为什么当场景改变时按钮没有被移除。行:
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
到现场。这意味着,当从一个场景转换到另一个场景时,该按钮将不再保持在固定的位置,并且将随场景过渡。