Swift3 在Swift Spritekit中,每当我从一个场景过渡到另一个场景时,我的sks文件都不会传输?
基本上,我的游戏有一个菜单和一个游戏场景。菜单项位于第一位,如ViewController的viewDidLoad函数所示 有一个简单的菜单屏幕,有一个播放按钮,可以直接进入游戏。以下是我的ToucheSBegind方法中的if块: 但是当它过渡到我的游戏场景时,我的游戏场景的sks文件不会渲染?我的GameSecene.swift中连接到sks文件中精灵的所有变量都丢失了。如何修复此问题?尝试:let scene=SKScenefileNamed:GameScene 让scene:SKScene=GameScenesize:self.size表示您正在加载GameScene类型的实例。它在任何时候都不会加载任何文件Swift3 在Swift Spritekit中,每当我从一个场景过渡到另一个场景时,我的sks文件都不会传输?,swift3,sprite-kit,Swift3,Sprite Kit,基本上,我的游戏有一个菜单和一个游戏场景。菜单项位于第一位,如ViewController的viewDidLoad函数所示 有一个简单的菜单屏幕,有一个播放按钮,可以直接进入游戏。以下是我的ToucheSBegind方法中的if块: 但是当它过渡到我的游戏场景时,我的游戏场景的sks文件不会渲染?我的GameSecene.swift中连接到sks文件中精灵的所有变量都丢失了。如何修复此问题?尝试:let scene=SKScenefileNamed:GameScene 让scene:SKScen
另一方面,SKScenefileNamed:GameSecene将加载一个文件,只需确保检查sks文件上的自定义类字段是否显示GameSecene如果让newScene=GameScenefileNamed:GameSecene{…}如果将GameScenesize:self.size更改为GameScenefileNamed:GameSecene,会发生什么?正如大家已经指出的,GameScenesize:self.size不加载SKS文件,它只加载SKS文件后面的类。名为initializer的文件是唯一加载单独文件的文件。作为旁注,您可以使用sks中的customClass字段来定义需要加载的类,并让scene=SKScenefileNamed:gamesceen希望您不介意,我更正并清理了您的答案,以便您可以获得一些投票
override func viewDidLoad() {
super.viewDidLoad()
if let scene = MenuScene(fileNamed:"MenuScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .aspectFit
skView.presentScene(scene)
}
}
if node == playButton {
playButton.size.height=playButton.size.height+30
playButton.size.width=playButton.size.height+30
if view != nil {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
let scene:SKScene = GameScene(size: self.size)
self.view?.presentScene(scene, transition: transition)
}
}