【发布时间】:2016-04-10 07:41:18
【问题描述】:
这是我在这个论坛上的第一篇文章,如果我做的事情不正确,我提前道歉! :)
我正在使用 Swift 和 SpriteKit 制作 iphone 游戏,但我目前遇到了问题。当我的应用程序进入后台时,它会调用一个函数 pause(参见下文),但在游戏恢复时它会自动取消暂停。
我看过这个非常有趣的帖子:Spritekit - Keep the game paused when didBecomeActive(和How to keep SpriteKit scene paused when app becomes active?)但我被卡住了。
我不知道如何实现新的 SKView 类,因为我的 View 配置如下代码所示...
这就是我的应用程序的工作方式:
class GameViewController: UIViewController {
var scene: GameScene!
override func viewDidLoad() {
super.viewDidLoad()
// Configure the View
let SkView = view as! SKView
SkView.multipleTouchEnabled = true
// Create and configure the scene
scene = GameScene(size: SkView.bounds.size)
scene.scaleMode = .AspectFill
// Present the scene
SkView.presentScene(scene)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("PauseWhenBackGround:"), name:"PauseWhenBackGround", object: nil)
}
func PauseWhenBackGround(notification : NSNotification) {
if scene.Pausing == false{
scene.Pause()
}
}
我尝试了以下方法:
我添加了一个新类:
class GameSceneView : SKView {
func CBApplicationDidBecomeActive() {
}
}
然后,我尝试将我的视图设置为let SkView = view as! GameSceneView,但我收到一条错误消息,提示我无法将视图投射到 MyProjectName.GameSceneView()...
我还尝试了以下方法:let SkView! = GameSceneView() as GameSceneView! 但我最终得到了一个灰色的背景场景......
有谁知道我如何实现新的 SKView 类来防止发生 CBApplicationDidBecomeActive() 错误,从而使游戏在激活时不会取消暂停?
提前非常感谢您! :)
【问题讨论】:
标签: swift skview pause gamecontroller