iOS Sprite Kit教程之场景的切换

iOS Sprite Kit教程之场景的切换

Sprite Kit中切换场景

每一个场景都不是单独存在的。玩家可以从一个场景中切换到另外一个场景中。本小节,我们来讲解场景切换。在每一个游戏中都会使用到场景与场景的切换功能,例如,在街机原始人游戏中,选择关卡这一场景中,可以看到有4关,这四关分别代表了4个场景,如图2.20所示。

图2.20  街机原始的关卡选择

当玩家选择第一关时,就会由选择关卡的场景跳转到第一关的场景中,如图2.21所示。

图2.21  第一关的场景

当玩家选择第二关时,就会由选择关卡的场景跳转到到第二关的场景中,如图2.22所示。

图2.22  第二关的场景

此时,它们就使用了到了场景与场景的切换功能,即当玩家轻拍相应的场景后,就会进入到到所选场景中。

Sprite Kit的单纯的场景切换

单纯的场景切换就是指,在场景与场景进行切换时是没有任何过渡效果出现的。切换时需要使用到presentScene(_ scene: SKScene?)方法。

【示例2-7】以下将以项目2-1为基础,实现在轻拍屏幕后,场景GameScene切换至NewGameScene的功能,具有操作步骤如下:

(1打开GameViewController.swift文件,在viewDidLoad()方法中的编写代码,实现在运行程序后,第一个显示的场景是GameScene,代码如下:

  • override func viewDidLoad() {
  • super.viewDidLoad()
  • let skView = self.view as SKView
  • if(skView.scene == nil){
  • skView.showsFPS=true
  • skView.showsNodeCount=true
  •   let scene=GameScene(size: skView.bounds.size)                                                 //创建场景
  • scene.scaleMode=SKSceneScaleMode.Fill
  • skView.presentScene(scene)                                                                                         
    //显示场景
  • }
  • }

(2打开GameScene.swift文件,删除touchesBegan(touches:
NSSet, withEvent event: UIEvent)中的代码,在其中编写代码,实现触摸屏幕显示NewGameScene场景的功能,代码如下:

  • override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
  • var nextScene=NewGameScene(size: self.size)                                                            //创建场景
  • self.view?.presentScene(nextScene)                                                                                 //显示场景
  • }

此时运行程序,会看到如图2.23所示的效果。

图2.23  运行效果

Sprite Kit在具有过渡动画的场景

使用单纯的场景切换会使游戏看起来十分生硬。所以游戏开发者为了解决这一不足之处,在切换过程中为游戏添加了过渡效果,使场景与场景切换更加舒适。这些过渡效果包括淡入淡出、水平关闭等,如表2-3所示。

表2-3  过渡动画

如果想要让一个场景在切换至另一个场景时可以使用到这些过渡动画,需要使用到presentScene(_ scene:SKScene?,?transition
transition: SKTransition?)方法,其语法形式如下:

  • func presentScene(_ scene: SKScene?,?transition
    transition: SKTransition?)

其中,_ scene表示新的场景,transition表示所使用的过渡动画效果。

【示例2-8】以下将在示例2-7的基础上实现在场景与场景切换时,加入一个旧场景从中间向两边打开,新场景从后方向屏幕靠近的过渡动画。具体的的操作步骤如下:

打开GameScene.swift文件,删除touchesBegan(touches: NSSet, withEvent event: UIEvent)中的代码,在其中编写代码,实现触摸屏幕显示NewGameScene场景的功能,代码如下:

  • override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
  • var nextScene=NewGameScene(size: self.size)
  • var doors=SKTransition.doorwayWithDuration(0.5)
  • self.view?.presentScene(nextScene, transition: doors)                                               //过渡
  • }

此时运行程序,会看到如图2.24所示的效果。

图2.24  运行效果

过渡动画除了可以使用在图2.24中所看到的外,还可以使用其他的效果,如以下的代码就使用了flipHorizontalWithDuration的过渡动画,即以水平中轴线垂直翻转的过渡动画,代码如下:

  • override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
  • var nextScene=NewGameScene(size: self.size)
  • var doors=SKTransition.flipHorizontalWithDuration(2)
  • self.view?.presentScene(nextScene, transition: doors)                                               //过渡
  • }

此时运行程序,会看到如图2.25所示的效果。

图2.25  运行效果

本文选自:iOS游戏框架Sprite
Kit基础教程——Swift版大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

?

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 05:34:31

iOS Sprite Kit教程之场景的切换的相关文章

iOS Sprite Kit教程之场景的设置

iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测试信息的设置. Sprite Kit中设置场景的背影颜色 backgroundColor属性可以用来对场景的背影颜色进行设置,其语法形式如下: var backgroundColor: CGColor! UIColor类给开发者提供了一些便利的方法快速制作常见的颜色的名称,而不是使用确定的RGB值.

iOS Sprite Kit教程之真机测试以及场景的添加与展示

iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在Mac(或者Mac虚拟机)上,并且此设备就是注册过的.打开创建的项目,在运行按钮一栏中,将程序运行的设备设置为真机的名称.它会自动加载到"选择程序运行的设备"这一项中,如图1.102所示.单击运行按钮,就可以看到应用程序在真机上运行了. 图1.102  设置设备 Sprite Kit的场景

iOS Sprite Kit教程之滚动场景

iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示. 图2.26  植物大战僵尸 在图2.26中,用黑色框框住的部分是在屏幕上显示的,即玩家是可以看到的.右边的这些内容玩家就看不到了,为了让玩家可以熟悉场景中的内容,此游戏在开始时,首先对屏幕中的场景进行滚动.本节将为开发者实现场景滚动的功能. Sprite Kit中让场景进行滚动 以下是如何让一个场景进行滚动的具体实现方法. 1.创建项目以及添加

iOS Sprite Kit教程之编敲代码以及Xcode的介绍

iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,Xcode的界面也比較复杂,如图1.40所看到的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 图

iOS Sprite Kit教程之编写程序以及Xcode的介绍

iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xcode的界面也比较复杂,如图1.40所示. 图1.40  Xcode的界面 在图1.40中可以看到Xcode的界面大致可以分为4大部分. q  编号为1的部分是导航窗口. q  编号为2的部分是代码编辑区域. q  编号为3的部分是工具窗口. q  编号为4的部分是显示程序调试信息的窗口. 本小节将对

iOS Sprite Kit教程之使用帮助文档以及调试程序

iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文本该如何打开以及如何查找相关的内容呢?以下将为你解决这些问题. 1.打开帮助文档 要使用帮助文本,必须要对其进行打开.选择Help|Documentation and API Reference命令,如图1.73所示,就可以打开了,打开后的帮助文档如图1.74所示.   图1.73  打开帮助文档

iOS Sprite Kit教程之申请和下载证书

iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的.例如,在模拟器上没有重力感应.相机机等.如果想要进行此方面的游戏的开发,进行程序测试时,模拟器显示就不是首选了,需要使用真机进行测试.本节将讲解真机进行测试前的准备工作.和如何进行真机测试. ios中申请和下载证书 申请和下载证书的具体步骤如下: 1.创建App ID 在申请和下载证书之前,首先要创建一个App ID.App ID是一系列字符,用于唯一标识iOS设备中的应用程序.创建App I

iOS Sprite Kit教程之xcode安装以及苹果帐号绑定

iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其他的站点上下载安装Xcode 有时候,应用商店下载较慢,所以用户也能够选择从其它站点下载Xcode安装文件.以下解说这样的Xcode的安装步骤: (1)双击下载的Xcode软件,弹出正在打开此软件的对话框,如图1.26所看到的. (2)打开该软件后,就会弹出Xcode对话框,如图1.27所看到的. 图1.26  操作步骤1                                     图1.27  操作步骤2 (3)将

iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试

在WWDC2014上,Sprite Kit又有了非常多新的提升! 当中一个非常有意思的东西就是Physics Field!也就是物理场! 这意味着我们在Sprite kit上编写虚拟物理场的游戏将变得非常easy! 这里我依据WWDC2014上What's new in Sprite kit的官方视频上的DEMO, 用Swift语言自己做了一个Demo. 截图例如以下: 先放上GitHub链接: https://github.com/songrotek/PhysicsFieldsWorld.gi