我正在创建我的第二个应用程序,但首先是iOS游戏。我完成了编码和关卡。
但最后我正在努力使用sprite kit中的按钮,所以我可以创建共享,或者在其中实现设置菜单,我正在使用的一种方式在下面证明。
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项目中使用storyboard来处理所有设置,菜单屏幕和额外按钮(例如,喜欢,分享)?
答案 0 :(得分:1)
您正尝试在 SpriteKit 中使用UIKit
。这就是更改场景时不删除按钮的原因。这一行:
self.view?.addSubview(Button)
将按钮添加到视图,而不是场景。这很重要,因为视图控制器在视图上显示场景,因此您有一个(通常)显示场景的视图。将按钮添加到视图时,它实际上附加到视图,而不是场景。要将按钮节点添加到场景,请尝试以下操作:
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
添加到场景。这意味着当从一个场景转换到另一个场景时,该按钮将不再保持在固定位置,并将随场景一起转换。