Swift 暂停并恢复场景
我在iPhone上测试我的游戏,我意识到我的主页按钮有问题。当我暂停游戏并加载另一个应用程序时,游戏不会暂停,当应用程序不在屏幕上时,游戏会继续 代码如下:Swift 暂停并恢复场景,swift,sprite-kit,swift2,xcode7,Swift,Sprite Kit,Swift2,Xcode7,我在iPhone上测试我的游戏,我意识到我的主页按钮有问题。当我暂停游戏并加载另一个应用程序时,游戏不会暂停,当应用程序不在屏幕上时,游戏会继续 代码如下: class GameScene: SKScene, SKPhysicsContactDelegate{ var PauseButton = SKSpriteNode(imageNamed: "pause") var Resume = SKSpriteNode(imageNamed: "resume1") } init(siz
class GameScene: SKScene, SKPhysicsContactDelegate{
var PauseButton = SKSpriteNode(imageNamed: "pause")
var Resume = SKSpriteNode(imageNamed: "resume1")
}
init(size: CGSize, won: Bool) {
super.init(size: size)
//pause
PauseButton.position = CGPointMake(330, 700)
PauseButton.zPosition = 3;
PauseButton.size = CGSizeMake(40, 40);
PauseButton.name = "PauseButton"
self.addChild(PauseButton)
//resume
Resume = SKSpriteNode(imageNamed: "resume1")
Resume.position = CGPointMake(520, 450)
Resume.zPosition = 100
Resume.setScale(1.3)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
show = self.scene as SKScene!
for touch in touches {
let Location:CGPoint = touch.locationInNode(self)
let Node:SKNode = self.nodeAtPoint(Location)
if(Node == PauseButton){
self.show.paused = true
PauseButton.removeFromParent()
self.addChild(Resume)
}
if(Node == Resume){
Resume.removeFromParent()
self.show.paused = false
self.addChild(PauseButton)
}
类游戏场景:SKScene,skphysiccontactdelegate{
var PauseButton=SKSpriteNode(图像名为:“暂停”)
var Resume=SKSpriteNode(图像名称:“resume1”)
}
初始化(大小:CGSize,赢得:Bool){
super.init(大小:size)
//停顿
PauseButton.position=CGPointMake(330700)
PauseButton.zPosition=3;
PauseButton.size=CGSizeMake(40,40);
PauseButton.name=“PauseButton”
self.addChild(暂停按钮)
//恢复
Resume=SKSpriteNode(图像名称:“resume1”)
Resume.position=CGPointMake(520450)
Resume.zPosition=100
简历.设置刻度(1.3)
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
/*当触摸开始时调用*/
show=self.scene作为SKScene!
接触{
let位置:CGPoint=touch.locationInNode(自)
let节点:SKNode=self.nodeAtPoint(位置)
如果(节点==暂停按钮){
self.show.paused=true
PauseButton.removeFromParent()文件
self.addChild(恢复)
}
如果(节点==恢复){
Resume.removeFromParent()
self.show.paused=false
self.addChild(暂停按钮)
}
当我按下home(主页)按钮时,如何使游戏暂停?当你返回应用程序时,SpriteKit将自动恢复。因此,你需要: 步骤1:创建一个变量:
var wasPaused : Bool = false
步骤2:在暂停/恢复功能中更改:
wasPaused = true // pause func
wasPaused = false // resume fun
步骤3:在更新场景的乐趣时:
override func update(currentTime: CFTimeInterval) {
if isPausing{
self.paused = true
return
}
}
暂停视图而不是场景
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
guard let view = view else {
return
}
view.paused = !view.paused
}
覆盖函数触摸开始(触摸:设置,withEvent事件:UIEvent?){
保护让视图=查看其他视图{
返回
}
view.paused=!view.paused
}