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的部分是显示程序调试信息的窗口。

本小节将对几个重要的区域进行讲解。

1.导航窗口

导航窗口的作用是显示整个项目的树状结构。开发者可以根据自己的喜好对其进行大小调整,以及显示和隐藏(View|Navigators|Show/HideNavigator来实现显示和隐藏,或通过使用Hide or show the Navigator按钮来实现显示和隐藏)。导航窗口可以显示8类不同的信息,所以又有了8个导航器。这8个导航器分别为:项目导航器、符号导航器、搜索导航器、问题导航器、测试导航器、调试导航器、断点导航器和日志导航器。可以通过导航窗口顶部的8个图标来进行导航之间的切换。

2.工具窗口

工具窗口可以对项目的一些设置信息进行编辑,开发者也是可以进行随时显示和隐藏的(View|Utilities|Show/HideUtilities来实现显示和隐藏,或通过使用Hide or show the Utilities按钮来实现显示和隐藏)。工具窗口可以分为上下两个部分。上半部分显示的内容取决于开发者在编辑器上正在编辑的文件类型,其中文件类型有3种如下:

  • q  当编辑器编辑的是代码文件时,工具窗口上半部分显示的内容为:文件查看器和快速帮助中的一个的内容。要想实现两个内容的切换,可以通过使用此窗口上半部分在顶部显示的图标来进行切换。

  • q  当编辑器编辑的是界面文件时,工具窗口上半部分显示的内容为:文件查看器、快速帮助、标识查看器、属性查看器、尺寸查看器和连接查看器中的一个的内容。要想实现6个内容的切换,可以通过使用此窗口上半部分在顶部显示的图标来进行切换。

  • q  当编辑器编辑的是场景文件是时,工具窗口的上半部分显示的内容为:文件查看器、快速帮助、以及节点查看器中的一个内容。

下半个工具窗口显示的内容是文件模板库、代码片断库、对象库和媒体库的其中一个内容。要想实现这4个内容的切换,可以通过使用此窗口下半部分在顶部显示的图标来进行切换。

3.编辑窗口

编辑窗口可以用来编写代码或编辑场景。在顶端,有左右箭头和整个项目的层次显示。

4.目标窗口

目标窗口中包含了项目的程序和配置,这些配置指定了如何构建程序代码,如图1.41所示。在目标窗口的顶部,可以选择General、Capabilities、Info、Build Settings、Build Phases、Build Rules中的内容。


图1.41  目标窗口

Xcode中运行程序

了解了Xcode的界面构成后,我们来看Xcode是如何进行程序运行的。运行程序只需要单击运行按钮,如图1.42所示,程序会自动进行运行了。在运行程序前首先对程序进行编译。如果程序正确,会出现一个Build Succeeded字符串,如图1.43所示。如果程序出现错误,那么就会出现一个Build Failed字符串,如图1.44所示。

1.42  运行程序


图1.43  程序正确                  图1.44  程序错误

在程序编译后,会自动对程序进行连接、运行,运行效果如图1.45~1.47所示。

图1.45  运行效果          图1.46  运行效果            图1.47  运行效果

注意:图1.45是应用程序的一个启动界面是系统自带的,开发者真正要使用到的界面是1.46所示的界面。启动界面也是可以删除的,如果开发者不想在程序运行时有启动界面,可以打开Info.plist文件,在此文件中找到Launch screen interface file base name,将其value后面的内容删除,如图1.48所示,


图1.48  设置启动界面

iOS模拟器介绍

图1.45或者1.46所看到的类似于手机的模型就是iOS模拟器。iOS模拟器是在没有iPhone或iPad设备时,对程序进行检测的设备。iOS模拟器可以模仿真实的iPhone或iPad等设备的各种功能。本小节将讲解一些有关模拟器的操作。

1.模拟器与真机的区别

iOS模拟器可以模仿真实的iPhone或iPad等设备的功能各种功能,如表1-4所示。

表1-4  iOS模拟器

iOS模拟器只能实现表1-4中的这些功能,其它的功能是实现不了的,如打电话、发送SMS信息、获取位置数据、照照相、麦克风等。

2.退出程序

如果想要将图1.47所示的应用程序退出(为用户完成某种特定功能所设计的程序被称为应用程序),该怎么办呢?这时就需要选择菜单栏中的Hardware|Home命令,退出应用程序后的效果,如图1.49所示。


图1.49  退出应用程序         图1.50  添加图像1

3.设置应用程序的图标

在图1.49中可以看到显示在iOS模拟器上的应用程序的图标为网状白色图像,它是iOS模拟器上的应用程序的默认图标。一般开发者不会使用此图标的,而是使用自己定制的图标。以下就是修改默认图标为自定义图标的具体操作步骤。

(1右击Supporting Files文件夹,弹出快捷菜单,如图1.50所示。

(2选择Add Files to "Hello World"…命令,弹出选择文件对话框,如图1.51所示。


图1.51  添加图像2         图1.52  设置图标

(3选择需要添加的图像,单击Add按钮,实现图像的添加。添加后的图像就会显示在Supporting Files文件夹中。

(4单击打开Supporting Files文件夹中的Info.plist文件,在其中添加一项Icon files,在其下拉菜单的Value中输入添加到Supporting Files文件夹中的图片,如图1.52所示。

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

图1.53  运行效果          图1.54  设置语言  图1.55  设置语言

4.设置语言

一般情况下iOS模拟器默认使用的English(英语)。对于英文不好的开发者来说,英文就像天书,怎么看也看不懂。这时,就需要将iOS模拟器的语言进行设置。要设置语言,需要切换到模拟器的主界面,向左拖动,找到Settings应用程序。找到后既可以对iOS模拟器的语言进行设置了,以下将iOS模拟器的语言变为中文,具体操作步骤如下:

(1切换到主界面,找到Settings应用程序,如图1.54所示。

(2选择Settings应用程序图标,进入Settings界面中,如图1.55所示。

(3选择General选项,进入General界面,如图1.56所示。

(4选择Language&Region选项,进入Language&Region界面中,如图1.57所示。

图1.56  设置语言                            图1.57  设置语言

(5选择iPhone Language选项,进入iPhone Language界面,如图1.58所示。

(6选择“简体中文”选项,轻拍Done按钮,弹出动作表单,如图1.59所示。

图1.58  设置语言                图1.59  设置语言

(7选择Change to Chinese,Simplified选项,进入正在设置语言的界面,如图1.60所示。当语言设置好后,iOS模拟器将会退出到主界面,此时主界面的应用程序的标题名就变为了中文,如图1.61所示。

图1.60  设置语言                           图1.61  设置语言

5.旋转

真机可以进行旋转,模拟器同样也可以进行旋转。要实现iOS模拟器的旋转只需要同时按住“Command+方向键”就可以了。以下是使用“Command+->”实现的iOS模拟器实现的向右旋转,如图1.62所示。


图1.62  旋转模拟器

如果想要让模拟器在一运行程序就进行旋转,即设备水平向左放置或者水平向右放置该怎么实现呢?这里有两种办法:第一种是在创建项目的General中进行设置;第二种是使用代码进行设置。

1.General中的设置

在创建的项目中,打开目标窗口(单击项目名称,可以打开),找到General选项。单击该选项,在General面板中找到Device Orientation选项。Device Orientation后面有4个单选框,开发者可以通过对这四个单选框的选择实现模拟器的旋转,如图1.63所示。


图1.63  设置模拟器的旋转      图1.64  运行效果

图1.63是将Hello World应用程序中的模拟器进行了水平放置。此时运行程序,会看到如图1.64所示的效果。

2.使用代码

代码来实现设备方向的改变,首先需要使用到supportedInterfaceOrientations()方法来实现设备方向的设置,其语法形式如下:

  • func supportedInterfaceOrientations() -> Int

其中,设备的方向包括7个,如表1-5所示。

表1-5  旋转方法

设置好设备的方向后,需要使用到shouldAutorotate()方法来让设备进行改变,其语法形式如下:

  • func shouldAutorotate() -> Bool

以下将使用代码,让Hello World应用程序中的模拟器进行水平放置。打开GameViewController.swift文件,在此文件中编写代码,代码如下:

  • override func shouldAutorotate() -> Bool {

  • return true

  • }

  • override func supportedInterfaceOrientations() -> Int {

  • return Int(UIInterfaceOrientationMask.Landscape.rawValue)                            //让设备水平放置

  • }

此时运行程序,可以看到横屏显示的模拟器。

6.删除应用程序

如果在iOS模拟器中出现了很多的应用程序,就可以将不再使用的应用程序进行删除。这样一来可以为设备节省内存空间,也可以使用户或者开发者便于管理自己的应用程序。以下主要实现Hello World应用程序的删除。

(1长按要删除的Hello World应用程序,直到所有的应用程序都开始抖动,并在每一个应用程序的左上角出现一个“x”,它是一个删除标记,如图1.65所示。

(2单击Hello World程序左上角出现的删除标记,会弹出一个删除“Hello World”对话框,选择其中的“删除”按钮,如图1.66所示。这时Hello World应用程序就在iOS模拟器上删除了。

图1.65  删除应用程序1                         图1.66  删除应用程序2

场景编辑器

在图1.46和图1.47中所看到的模拟器中显示的内容都为场景,对于场景的设计有专门的场景编辑器。本小节将讲解场景编辑器的组成、以及如何设计。

1.场景编辑器的组成

单击项目中的GameScene.sks就可以打开场景编辑器。场景编辑器分为了4部分,如图1.67所示。


图1.67  场景编辑器构成

其中,这四部分的说明如下:

  • q  编号为1的部分为导航窗口。

  • q  编号为2的部分为场景:在可以在其中放置一些节点,

  • q  编号为3的部分为工具窗格的检查器:用于编辑当前选择的对象的属性。

  • q  编号为4的部分为工具窗格的库:如果选择的是Objects,里边存放了节点以及其它。

2.设置场景

以下将在场景中显示一个标签,具体的操作步骤如下:

(1单击工具窗口的库,在其中找到Show the Object Library。在Show the Object Library中找到Label标签对象将其拖动到场景中,如图1.68所示。


图1.68  设计场景

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


图1.69  运行效果

如果想要让新添加的标签对象有一个独特的风格。需要使用Show the SKNode inspector面板,如图1.70所示。


图1.70  设置标签

在图1.70中,我们将标签的Text设置为了Sprite Kit,将标签的Color设置为了黑色。此时运行程序,会看到如图1.71所以的效果。


图1.71  运行效果

Xcode编写代码

代码就是用来实现某一特定的功能而用计算机语言编写的命令序列的集合。现在就来通过代码实现标签的显示。具体的操作步骤如下:

(1打开Hello World项目的GameScene.swift文件,将不使用的代码删除,此时剩余代码如下:

  • import SpriteKit

  • class GameScene: SKScene {

  • override func didMoveToView(view: SKView) {

  • }

  • }

(2在GameScene.swift文件中编写代码。此代码实现的功能是在场景中显示一个标签内容为"Never betray Hello World"的标签对象。代码如下:

  • import SpriteKit

  • class GameScene: SKScene {

  • override func didMoveToView(view: SKView) {

  •   let label = SKLabelNode(fontNamed:"Chalkduster")                                    //实例化对象

  • label.text = "Never betray Hello World"                                                            //设置显示的内容

  • label.fontSize = 65                                                                                                   //设置文本大小

  • label.fontColor=SKColor.blueColor()                                                                 //设置颜色

  • label.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))

  • self.addChild(label)

  • }

  • }

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


图1.72  运行效果

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

iOS Sprite Kit教程之编写程序以及Xcode的介绍相关推荐

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

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

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

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

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

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

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

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

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

    iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在 ...

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

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

  7. ios游戏开发 Sprite Kit教程:初学者 2

    2019独角兽企业重金招聘Python工程师标准>>> 注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点 Spr ...

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

    iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其它的网站上下载安装Xcode 有时候,应用商店下载较慢,所以用户也可以选择从其他网站下载Xcode安装文件.下面讲解这种Xcode的 ...

  9. Sprite Kit教程

    在iOS 7中内置了一个新的Sprite Kit框架,该框架主要用来开发2D游戏.目前已经支持的内容包括:精灵.很酷的特效(例如视频.滤镜和遮罩),并且还集成了物理库等许多东西.iOS 7中附带了一个 ...

最新文章

  1. Android中SQLite的使用
  2. 根据网络状态获取Ip地址
  3. μC/OS-II软件定时器的分析与测试
  4. 评价指标:目标检测的评价指标 - mAP
  5. Docker环境下:ImportError: libSM.so.6: cannot open shared object file: No such file or directory
  6. WindowsSdkDir 从何处来?
  7. Idea集成svn插件
  8. 程序设计基础(c语言)(第3版)课后习题答案
  9. python深度学习入门-误差反向传播法
  10. 功率谱估值方法matlab仿真——2、经典估值方法介绍
  11. 一个简单炫酷的前端小项目(html+css+js)----3D图片演示
  12. Android开发如何调用百度翻译api
  13. 3.1 人生规划的秘密:一个人活成一支队伍
  14. JAVA做语言国际化
  15. 17.Ubuntu命令行下添加新用户
  16. sal2edge.py显著性mask生成边缘标签
  17. XCode9的新变化
  18. 好心情患者故事|致抑郁症患者:我们能被治愈,也值得被爱
  19. webbrowser显示html
  20. python生成txt文件

热门文章

  1. ADO.NET中带参数的Sql语句的陷阱
  2. [UI] 精美UI界面欣赏[1]
  3. Ubuntu 14.04更新为国内阿里源解决apt-get install无法执行的问题
  4. Netty 断线重连解决方案
  5. 如果不知道MySQL当前使用配置文件(my.cnf)的路径的解决方法
  6. CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
  7. LF将由git中的CRLF替换-那是什么,它很重要吗? [重复]
  8. 处理多个Python版本和PIP?
  9. 在生产集群上运行topology
  10. 总编下午茶:挑战者心态能否帮助微软重回云计算巅峰?