如何使用 swift 使用带有 spriteKit 的情节提要
Posted
技术标签:
【中文标题】如何使用 swift 使用带有 spriteKit 的情节提要【英文标题】:How do I use storyboards with spriteKit using swift 【发布时间】:2015-03-11 02:17:05 【问题描述】:我使用 Xcode 而不是其他应用程序来制作 ios 应用程序的主要原因之一是故事板界面构建器。当我发现您不打算将情节提要与 spriteKit 一起使用时,我很不高兴。如果没有一个好的视觉构建器,我发现很难为游戏菜单设计一个漂亮的界面。有没有办法使用故事板启动 spriteKit 应用程序,然后单击“开始游戏”按钮,切换到 spriteKit 场景,然后当你输掉游戏时,在代码中切换回故事板(使用 swift)?请帮忙,谢谢。
-卡勒姆-
【问题讨论】:
【参考方案1】:SpriteKit 场景呈现在 SKView 的实例上,它是 UIView 的子类。
对于使用 SpriteKit 制作的 iOS 游戏,需要在 App 委托或情节提要中以编程方式设置至少一个 viewController,在其上可以显示 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。
【讨论】:
以上是关于如何使用 swift 使用带有 spriteKit 的情节提要的主要内容,如果未能解决你的问题,请参考以下文章
将 AcceptMouseMovedEvents 用于带有 Storyboard 和 Swift 的 SpriteKit 鼠标操作
这个带有 SpriteKit 代码的 Swift 没有达到预期的效果
如何将SpriteKit中的单个游戏场景添加到普通的单视图Swift应用程序中