swift - SpriteKit presentScene 不适用于过渡,只有没有
问题描述
所以我有我SKView
的作为IBOutlet
和一个委托,它允许场景改变当前场景,如下所示:
// this code is inside the view controller
func changeScene(to sceneType: GameScene.Type) {
let sceneName = NSStringFromClass(sceneType).components(separatedBy: ".").last!
let scene = sceneType.init(fileNamed: sceneName)!
scene.scaleMode = .aspectFill
scene.dialogueDelegate = self.dialogueView
scene.sceneDelegate = self
self.hudScene.hudDelegate = scene
self.actionButtonScene.actionButtonDelegate = scene
self.gameView.presentScene(scene, transition: SKTransition.fade(withDuration: 2))
}
我在游戏开始时(并且它有效)和玩家掉出场景时调用此函数一次:
// this code is inside the scene
override func update(_ currentTime: TimeInterval) {
if self.player.position.y < -self.size.height / 2 {
self.player.removeFromParent()
self.sceneDelegate?.changeScene(to: Self.self)
}
}
但第二次它什么也没做。代码被执行,但没有呈现场景。删除SKTransition
似乎可以解决问题,但为什么这里的过渡是一个问题?
解决方案
推荐阅读
- python - 单击时切换单元格的颜色(Tkinter-Python)
- reactjs - React - 未捕获的类型错误:无法读取未定义的属性“组件”
- c++ - 为什么默认的复制构造函数会忽略派生类的虚方法覆盖?
- angular - Angular:HttpRequest.clone() - params 和 setParams 有什么区别?
- java - 如何在没有 JSP 页面的情况下将参数发送到 Servlet
- ionic4 - 如何将数据从 *ngFor 项传递到单击方法
- c# - 在 Elasticsearch 的查询 DSL 中使用“MatchPhrasePrefix”
- sql - 如何找到产品未知数量选项的所有组合?
- architecture - 微软是否应用了企业架构?如果是/否,为什么?
- php - 如何在 PHP 中获取高级搜索的结果