如何使用 swift 将故事板与 spriteKit 一起使用
How do I use storyboards with spriteKit using swift
我使用 Xcode 而不是其他应用程序来制作 iOS 应用程序的主要原因之一是故事板界面生成器。当我发现你不打算将故事板与 spriteKit 一起使用时,我很不高兴。我发现如果没有好的视觉构建器,很难为游戏菜单设计一个漂亮的界面。有没有办法使用故事板启动 spriteKit 应用程序,然后单击 "start game" 按钮,切换到 spriteKit 场景,然后当你输掉游戏时,在代码中切换回故事板(使用 swift)?请帮助和感谢。
-卡勒姆-
SpriteKit 场景呈现在 SKView 的实例上,它是 UIView 的子类。
对于使用 SpriteKit 制作的 iOS 游戏,需要至少一个 viewController 设置,可以在 App delegate 中以编程方式或在情节提要中设置,SKScene 可以在其上显示. SKScene 将在此 VC 的主视图中呈现。
因此,如果您使用故事板,iOS 游戏将必须从中实例化根 viewController。您可以轻松地在 viewController 上设计您的 UI,并在按下按钮时从代码中呈现游戏,无论是在相同的 viewController 还是新的 viewController 中。一旦你阅读了使用 Swift 的 SpriteKit 初学者教程,如 this.
,所有这些都会很明显
假设您的根 viewController 有主菜单(在另一个名为 menuView 的视图上),上面有一个播放按钮。现在按下按钮展示游戏看起来像这样:
class MyViewController: UIViewController {
@IBOutlet wear var menuView: UIView?
@IBOutlet weak var playButton: UIButton?
@IBAction func likedThis(sender: UIButton) {
//Hide the menu view
menuView.hidden = true
//instantiate and present the scene on the main view
let scene = MyScene(size: view.bounds.size)
let skView = self.view as SKView
skView.presentScene(scene)
}
}
从场景回到主菜单,看这个answer。
我使用 Xcode 而不是其他应用程序来制作 iOS 应用程序的主要原因之一是故事板界面生成器。当我发现你不打算将故事板与 spriteKit 一起使用时,我很不高兴。我发现如果没有好的视觉构建器,很难为游戏菜单设计一个漂亮的界面。有没有办法使用故事板启动 spriteKit 应用程序,然后单击 "start game" 按钮,切换到 spriteKit 场景,然后当你输掉游戏时,在代码中切换回故事板(使用 swift)?请帮助和感谢。
-卡勒姆-
SpriteKit 场景呈现在 SKView 的实例上,它是 UIView 的子类。
对于使用 SpriteKit 制作的 iOS 游戏,需要至少一个 viewController 设置,可以在 App delegate 中以编程方式或在情节提要中设置,SKScene 可以在其上显示. SKScene 将在此 VC 的主视图中呈现。
因此,如果您使用故事板,iOS 游戏将必须从中实例化根 viewController。您可以轻松地在 viewController 上设计您的 UI,并在按下按钮时从代码中呈现游戏,无论是在相同的 viewController 还是新的 viewController 中。一旦你阅读了使用 Swift 的 SpriteKit 初学者教程,如 this.
,所有这些都会很明显假设您的根 viewController 有主菜单(在另一个名为 menuView 的视图上),上面有一个播放按钮。现在按下按钮展示游戏看起来像这样:
class MyViewController: UIViewController {
@IBOutlet wear var menuView: UIView?
@IBOutlet weak var playButton: UIButton?
@IBAction func likedThis(sender: UIButton) {
//Hide the menu view
menuView.hidden = true
//instantiate and present the scene on the main view
let scene = MyScene(size: view.bounds.size)
let skView = self.view as SKView
skView.presentScene(scene)
}
}
从场景回到主菜单,看这个answer。