【发布时间】:2019-02-15 00:42:36
【问题描述】:
我的想法是在移动到游戏场景之前显示几秒钟的地图,游戏屏幕层次结构是这样的:
GameViewController(UIViewController) -> EntryToGameScene (SKView ) -> MapController (UIViewController) -> GamePlayGround (SKView)
我在从 MapController 移动到 GamePlayGround 时遇到了一个问题,为了能够从控制器移动到场景,我首先将控制器视图类从 Storyboard 更改为 SKView,然后我添加了以下代码 ⬇️。handleDelay() 方法之后运行,游戏场景didMove() 方法工作但屏幕卡在旧视图(MapController)上!?我确定游戏场景didMove() 方法有效,因为背景音乐开始播放。但是为什么屏幕没有变化?
我的代码是这样的:
override func viewDidLoad() {
super.viewDidLoad()
// Wait for three sec. then move to game scene
self.perform(#selector(handleDelay), with: nil, afterDelay: 3.0)
}
@objc fileprivate func handleDelay() {
view.layoutIfNeeded()
if let view = self.view as! SKView? {
// Load the SKScene
let scene = GameScene(size: sceneSize)
// Set the scale mode
scene.scaleMode = .aspectFill
scene.delegate = self
// Present the scene
view.presentScene(scene)
view.ignoresSiblingOrder = true
view.showsFPS = false
view.showsNodeCount = false
view.showsPhysics = false
}
}
所有答案都可以接受。
【问题讨论】:
-
我不认为我完全理解你的问题。您想在游戏中显示地牢/关卡地图几秒钟,然后再转到另一个视图?我假设英语不是您的第一语言,但如果您可以编辑您的问题以更好地说明您的问题,那将真正帮助我了解我需要帮助您的内容。
-
@E.Huckabee 谢谢你的建议,我已经更正了我的问题。
-
@E.Huckabee 是的,你没看错。
-
我建议学习如何使用你的故事板。您可以对此进行情节提要,而无需任何代码。
-
@Knight0fDragon 你能解释一下吗?
标签: ios swift sprite-kit skview