Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SpriteKit是从场景过渡到场景的最佳方式_Ios_Swift_Sprite Kit - Fatal编程技术网

Ios SpriteKit是从场景过渡到场景的最佳方式

Ios SpriteKit是从场景过渡到场景的最佳方式,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我想实现一个菜单场景,然后在一个新场景中启动一个游戏。下面是我的解决方案,但我想知道这是实现预期效果的首选方法,还是其他人有其他选择 斯威夫特 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { let gameScene = MainGameScene(fileNamed: "MainGameScene") gameScene?.ini

我想实现一个菜单场景,然后在一个新场景中启动一个游戏。下面是我的解决方案,但我想知道这是实现预期效果的首选方法,还是其他人有其他选择

斯威夫特

 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
    {
        let gameScene = MainGameScene(fileNamed: "MainGameScene")
        gameScene?.initMenuScene(self)
        let transition = SKTransition.doorwayWithDuration(1.0)

        self.view?.presentScene(gameScene!, transition: transition)
    }
class MainGameScene: SKScene
{

var menuScene: SKScene?

func initMenuScene(scene: SKScene)
{
    self.menuScene = scene
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
    let transition = SKTransition.doorwayWithDuration(1.0)

    self.view?.presentScene(menuScene!, transition: transition)

}
覆盖函数触摸开始(触摸:设置,withEvent事件:UIEvent?)
{
让GameSecene=MainGameSecene(文件名为:“MainGameSecene”)
游戏场景?.initMenuScene(自我)
let transition=SKTransition.WithDuration(1.0)
self.view?.presentScene(游戏场景,过渡:过渡)
}
斯威夫特

 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
    {
        let gameScene = MainGameScene(fileNamed: "MainGameScene")
        gameScene?.initMenuScene(self)
        let transition = SKTransition.doorwayWithDuration(1.0)

        self.view?.presentScene(gameScene!, transition: transition)
    }
class MainGameScene: SKScene
{

var menuScene: SKScene?

func initMenuScene(scene: SKScene)
{
    self.menuScene = scene
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
    let transition = SKTransition.doorwayWithDuration(1.0)

    self.view?.presentScene(menuScene!, transition: transition)

}
class MainGameSecene:SKScene
{
var menuScene:SKScene?
func initMenuScene(场景:SKScene)
{
self.menuScene=场景
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?)
{
let transition=SKTransition.WithDuration(1.0)
self.view?.presentScene(menuScene!,transition:transition)
}

}

我觉得没问题。您正在通过触摸显示主游戏场景,并通过显示场景从主游戏场景返回到您的游戏场景。我避免做的一件事是在触摸事件上创建场景,我会在加载阶段创建场景,这样当您显示时,在过渡阶段中没有停顿,这是有用的反馈