我使用swift使用普通的单一视图类型的应用程序构建了一个简单的琐事游戏。但是现在,作为更新的一部分,我想为游戏添加一个更复杂的琐事级别,这个级别将使用SpriteKit构建,带有动画和诸如此类的东西,但我不知道如何转换并显示spriteKit游戏场景在一个简单的单一视图swift应用程序中,然后转换回常规视图控制器。
我确实四处搜索,但我找不到这个问题的具体答案,只是反过来。
非常感谢任何帮助。
答案 0 :(得分:2)
不确定您是否仍在尝试这样做,但您可以非常轻松地在UIKit和SpriteKit场景之间切换,执行以下操作:
let scene = NewTriviaScene(fileNamed: "NewTriviaScene")
scene?.scaleMode = .aspectFill
self.view?.presentScene(scene!, transition: SKTransition.flipHorizontal(withDuration: 0.42)) // or whatever other transition
您只需要创建一个包含所需内容的.sks场景,并设置其自定义类'成为一个快速的代码文件,你也创建。这个快速的代码文件将导入SpriteKit并成为SKScene:
class NewTriviaScene: SKScene { }
然后,您可以在此代码文件中添加自定义行为和动画,并响应触摸和其他事件。对于琐事,猜测你主要是关注触摸事件。您可以在sks文件中命名节点,并在touches方法中引用它们,如:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for t in touches {
let loc = t.location(in: self)
if atPoint(loc).name == "someName" { }
然后你可以像以前一样,在触摸事件或分数或其他内容中加载新的UIKit场景。