在SpriteKit Swift 2中切换场景

时间:2016-02-18 00:10:33

标签: sprite-kit swift2 skscene

我一直在尝试用精灵套件制作游戏,我想用一个播放按钮实现一个启动画面,带你进入实际的游戏。我已经看到很多方法可以做到这一点,但大多数使用swift 1并且不是最新的 这是我的功能代码

func switchScene()
{
    let scene = GameScene(fileNamed: "PlayScene")
    let transition = SKTranstion.crossFadeWithDuration(1)
    self?.view.presentScene(scene, transition)
}

PlayScene是一个扩展SKScene的快速类

2 个答案:

答案 0 :(得分:0)

这里重要的是拥有两个.sks文件,因为您正在使用SKNode的fileNamed:便利初始化程序。所以,如果你还没有这样做,请转到

  

档案 - >新 - >文件...->资源 - > SpriteKit游戏场景

并添加一个新的.sks文件。现在,因为fileNamed:被声明为可用的初始化器,它可以返回nil:

public convenience init?(fileNamed filename: String) 

您应该使用可选绑定以安全的方式访问新场景:

<强> StartScene.swift

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        if let scene = PlayScene(fileNamed: "PlayScene"){
            let transition = SKTransition.crossFadeWithDuration(1)
            view?.presentScene(scene, transition: transition)
        }     
}

答案 1 :(得分:0)

在我的游戏中,我使用了这个:

// Setting a size (or else it may look like its zoomed in)
var selectView = BallSelect(size: view!.bounds.size) 
// Setting a file for that scene
selectView = BallSelect(fileNamed: "BallSelect")! 
// Setting the scale
selectView.scaleMode = SKSceneScaleMode.AspectFill 
// Transitioning scenes wit a specific transition
self.scene?.view?.presentScene(selectView, transition: SKTransition.fadeWithColor(color, duration: 1)) 

告诉我它是否有效:)