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教程之编敲代码以及Xcode的介绍

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

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

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

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

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

  8. ios游戏开发 Sprite Kit教程:初学者 1

    注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点 Sprite Kit vs Cocos2D-iPhone vs Cocos2D- ...

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

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

随机推荐

  1. 【leetcode 简单】 第九十题 字符串中的第一个唯一字符

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = "loveleetcod ...

  2. 结构体变量的sizeof计算

    结构体字节对齐准则: 1. 结构体变量的首地址能够被其最宽基本类型成员的大小所整除: 2. 结构体每个成员相对于结构体首地址的偏移量都是当前成员大小的整数倍,如有需要编译器会在成员之间加上填充字节: ...

  3. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

  4. 华硕笔记本U盘重装系统

    ESC启动把Secure Boot改为Disabled,Launch CSM改为Enabled,然后重新选择不带UEFI字样的U盘启动项.然后就可以找到U盘进入PE

  5. 大数据系列之分布式计算批处理引擎MapReduce实践

    关于MR的工作原理不做过多叙述,本文将对MapReduce的实例WordCount(单词计数程序)做实践,从而理解MapReduce的工作机制. WordCount: 1.应用场景,在大量文件中存储了 ...

  6. 关于Unity启动时间过长(启动黑屏时间长)的问题!!! 牛逼... 思路不错...

    http://blog.csdn.net/u012169685/article/details/52068809

  7. 查找Python包的依赖包(语句)

    Window 10家庭中文版,Python 3.6.4, 今天看完了urllib3的官文(官方文档),因为没有具体使用过,所以,仍然是一知半解,但是,突然想知道 urllib3以及前面学习过的requ ...

  8. 【前端vue开发】vue项目使用sass less扩展语言所要安装的依赖

    1.创建一个基于 webpack 模板的新项目 $ vue init webpack myvue 2.在当前目录下,安装依赖 $ cd myvue $ npm install 3.安装sass的依赖包 ...

  9. Linux sudo 配置

    1.配置sudo权限 sudo配置信息保存在 /etc/sudoers 文件中,可以使用vi修改.但使用vi修改需要给root用户设置权限,可以使用 visudo 直接修改. visudo 复制这行将 ...

  10. No.13 selenium for python 单选框和复选框

    单选框 radio 点击图标,可以获取HTML中定位. 使用普通的ID定位就可以了 定位到指定元素,然后使用clicd选中即可 复选框 checkbox 勾选单个框,跟单选框一样,定位后点击就可以了 ...