
上QQ阅读APP看书,第一时间看更新
2.2 显示新增的场景
在2.1节中,添加新场景后,这时的新场景是不可以显示在设备的屏幕中的,那么如何将新增的场景显示在屏幕中呢?这就是本节将要讲解的内容。
1.创建场景
创建场景也就是所谓的实例化对象。由于每一个场景都是基于SKScene类的,所以每一个场景都有一个通用的实例化对象的方法,其语法形式如下:
init(size size: CGSize)
其中,size是场景对象的尺寸,即大小。
2.显示场景
创建好场景后,此时运行程序,新添加的场景还是无法显示的。如果想要将新的场景进行显示,需要使用presentScene(_ scene: SKScene?)方法,此方法用来显示一个场景,其语法形式如下:
func presentScene(_ scene: SKScene?)
其中,_ scene用来表示需要显示的场景。
【示例2-1】以下将以项目2-1为基础,将添加的新的场景显示在屏幕上,具体操作步骤如下:
打开GameViewController.swift文件,删除GameViewController.swift文件中的部分代码。此时剩余的代码如下:
import UIKit import SpriteKit class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } }
在viewDidLoad()方法中添加以下的代码,此代码实现的功能就是将新添加的场景显示在屏幕上:
override func viewDidLoad() { super.viewDidLoad() let skView = self.view as! SKView //判断skView的scene属性是否为空 if(skView.scene == nil){ skView.showsFPS=true skView.showsNodeCount=true let scene=NewGameScene(size: skView.bounds.size) //创建场景 skView.presentScene(scene) //显示场景 } }
此时运行程序,会看到如图2.8所示的效果。

图2.8 运行效果
注意:SKView类是专门用来呈现Sprite Kit的View。在此类中可以渲染和管理一个SKScene。每个Scene中可以加载多个精灵,并管理它们的行为。