如何将SpriteKit中的单个游戏场景添加到普通的单视图Swift应用程序中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将SpriteKit中的单个游戏场景添加到普通的单视图Swift应用程序中相关的知识,希望对你有一定的参考价值。

我使用swift使用普通的单一视图类型的应用程序构建了一个简单的琐事游戏。但是现在,作为更新的一部分,我想为游戏添加一个更复杂的琐事级别,这个级别将使用SpriteKit构建,带有动画和诸如此类的东西,但我不知道如何转换并显示spriteKit游戏场景在一个简单的单一视图swift app中然后转换回常规视图控制器。

我做了四处搜索,但我找不到这个问题的具体答案,只是相反。

任何帮助都非常感谢。

答案

不确定你是否还在尝试这样做,但你可以很容易地在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场景。

以上是关于如何将SpriteKit中的单个游戏场景添加到普通的单视图Swift应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

将 UITextView 添加到 SpriteKit 中的场景

将游戏中心添加到游戏后第一次接触时 Spritekit 游戏场景停止

如何在 SpriteKit 中为游戏添加音乐

iOS 7 SpriteKit 游戏 - 保存加载游戏时出错:'尝试将 nil 节点添加到父节点:<SKNode> 名称:'(null)'

Sprite Kit:如何在运行场景之上添加场景

如何在swift(SpriteKit)中绘制一个作为单个节点的圆点[关闭]