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

IOS实现真机测试

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

 

图1.102  设置设备

Sprite Kit的场景

玩家在移动设备或者是在电脑上进入一个游戏后,出现在屏幕上的内容被称为场景,如图2.1所示。在游戏中,场景就是一个关卡,或者是一个游戏界面。这样的一个一个的场景就组成了一个游戏。本章将讲解如何实现场景的添加、显示、设置、切换以及场景的滚动等内容。

图2.1  场景

Sprite Kit添加场景

在一个游戏中,可能由一个或者多个场景组成,具体需要根据游戏的设计要求来决定。那么场景是如何进行添加的呢?这就是本节将要解决的问题。添加一个新的场景的具体步骤如下:

(1单击Xcode,弹出Welcome to Xcode对话框。选择Create a new Xcode project选项,弹出Choose a template for your new project:对话框,如图2.2所示。

 

图2.2  创建项目1

(2选择iOS|Application中的Game模板,单击Next按钮后,弹出Choose options for your new project:对话框,如图2.3所示。

 

图2.3  创建项目2

(3填入Product Name(项目名)、Organization Identifier(标识符)信息以及选择Language(编程语言)和设备Devices(设备),如表2-1所示。

表2-1  填写的内容

 

(4单击Next按钮,弹出保存位置对话框架,单击Create按钮。此时,一个名为2-1的项目就创建好了。

(5单击项目名称,打开目标窗口,选择General选项,打开General面板。在其中找到Device Orientation选项,选择其中的Landscape Left和Landscape Right单选框。让运行的模拟器方向变为横向,如图2.4所示。

 

图2.4  修改设备的方向

(6选择菜单栏上的File|New|File命令,如图2.5所示。

 

图2.5  添加新场景1

(7弹出Choose a template for your new file:对话框,如图2.6所示。

 

图2.6  添加新场景2

(8选择iOS|Source|Swift file模板,单击Next按钮,弹出设置文件信息的对话框,其中包括文件名称和位置,如图2.7所示。

 

图2.7  添加新场景3

(9输入文件名称后,单击Create按钮,此时就在创建的项目中新建了一个NewGameScene.swift的文件。单击打开NewGameScene.swift文件,创建一个空的类,代码如下:

  • import SpriteKit
  • //类的创建
  • class NewGameScene: SKScene {
  •    
  • }

此时一个新的场景就被添加好了。

Sprite Kit中显示新增的场景

在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中可以加载多个精灵,并管理它们的行为。

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

iOS Sprite Kit教程之真机测试以及场景的添加与展示的更多相关文章

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

    iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的.例如,在模拟器上没有重力感应.相机机等.如果想要进行此方面的游戏的开发,进行程序测试时,模拟器显 ...

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

    iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xco ...

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

    iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,X ...

  4. iOS Sprite Kit教程之场景的切换

    iOS Sprite Kit教程之场景的切换 Sprite Kit中切换场景 每一个场景都不是单独存在的.玩家可以从一个场景中切换到另外一个场景中.本小节,我们来讲解场景切换.在每一个游戏中都会使用到 ...

  5. iOS Sprite Kit教程之场景的设置

    iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测 ...

  6. iOS Sprite Kit教程之滚动场景

    iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示. 图2.26  植物大战僵尸 在图2.26中,用 ...

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

    iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文 ...

  8. iOS真机测试,为Provisioning添加设备

    ------------添加设备到provisioning------------- 1,登陆https://developer.apple.com/devcenter/ios/index.actio ...

  9. Unity导出iOS真机测试教程

    原地址:http://unity3d.9tech.cn/news/2014/0410/40177.html 学 习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发 ...

随机推荐

  1. 连接mysql提示Establishing SSL connection without server's identity verification is not recommended错误

    Establishing SSL connection without server's identity verification is not recommended. According to ...

  2. 转 -- ARM 中 LDR伪指令

    我们知道ARM CPU中有一条被广泛使用的指令LDR,它主要是用来从存储器(确切地说是地址空间)中装载数据到通用寄存器.但不论是ARMASM还是GNU ARM AS,都提供了一条与之同名的伪指令LDR ...

  3. laravel二维数组手动分页显示

    示例:数组 $user 如下 $user: array (size=) 'sort' => array (size=) => float 0.028616622341171 => f ...

  4. Eclipse改变相同代码高亮颜色

    一.点击某一代码时,让相同代码高亮显示(Eclipse默认是这样的) Window ->preferences ->Java ->Editor ->Mark Occurrenc ...

  5. 《区块链100问》第84集:资产代币化之对标黄金Digix

    黄金是避险的不二选择.Digix发行的黄金代币则是数字资产世界里的黄金,其代币简称DGX,能够在数字资产世界中起到避险的作用. DGX如何实现对标黄金呢?它将黄金资产进行了上链(即:区块链)操作.举个 ...

  6. μC/OS-Ⅱ在C8051F060上的移植及其应用

    嵌入式操作系统是嵌入式应用的基础和核心.随着应用系统的不断复杂化和系统实时性需求的不断提高,对相应软件的逻辑结构.稳定性.实时性也提出了更高的要求,以传统的前后台编程模式编制软件将更加困难,而且容易出 ...

  7. excel导入时候日期格式转成date

    最近在做导入的时候发现,excel中设置数值格式是不能有日期的那些符号出现的,/ - : 之类的,否则就会变成数字到了java后台,设置成日期,比如 yyyy-mm-dd 到了后台也是数字,即距离19 ...

  8. imperva 网管替换

    事情是这样的 某某银行的imperva DAM审计设备出现蜂鸣的响声.经检查电源没有问题,怀疑是硬盘坏了 . 然后我就去底层查看 运行命令 :impctl platform storage raid ...

  9. 【转】Spring MVC 标签总结

    1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

  10. Django-模板语言和过滤器

    Django模板语言 首先模板只是一个文本文件,它可以生成任何基于文本的格式(HTML.XML.CSS等),模板中包含变量,在模板被渲染的时候替换为最终的值,以及控制模板逻辑的标签. 变量使用{{ 变 ...