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" alt="">
图1.40 Xcode的界面
在图1.40中能够看到Xcode的界面大致能够分为4大部分。
q 编号为1的部分是导航窗体。
q 编号为2的部分是代码编辑区域。
q 编号为3的部分是工具窗体。
q 编号为4的部分是显示程序调试信息的窗体。
本小节将对几个重要的区域进行解说。
1.导航窗体
导航窗体的作用是显示整个项目的树状结构。
开发人员能够依据自己的喜好对其进行大小调整,以及显示和隐藏(View|Navigators|Show/HideNavigator来实现显示和隐藏,或通过使用Hide
or show the Navigatorbutton来实现显示和隐藏)。
导航窗体能够显示8类不同的信息,所以又有了8个导航器。这8个导航器分别为:项目导航器、符号导航器、搜索导航器、问题导航器、測试导航器、调试导航器、断点导航器和日志导航器。能够通过导航窗体顶部的8个图标来进行导航之间的切换。
2.工具窗体
工具窗体能够对项目的一些设置信息进行编辑,开发人员也是能够进行随时显示和隐藏的(View|Utilities|Show/HideUtilities来实现显示和隐藏。或通过使用Hide
or show the Utilitiesbutton来实现显示和隐藏)。
工具窗体能够分为上下两个部分。上半部分显示的内容取决于开发人员在编辑器上正在编辑的文件类型,当中文件类型有3种例如以下:
q 当编辑器编辑的是代码文件时,工具窗体上半部分显示的内容为:文件查看器和高速帮助中的一个的内容。要想实现两个内容的切换,能够通过使用此窗体上半部分在顶部显示的图标来进行切换。
q 当编辑器编辑的是界面文件时,工具窗体上半部分显示的内容为:文件查看器、高速帮助、标识查看器、属性查看器、尺寸查看器和连接查看器中的一个的内容。要想实现6个内容的切换,能够通过使用此窗体上半部分在顶部显示的图标来进行切换。
q 当编辑器编辑的是场景文件是时。工具窗体的上半部分显示的内容为:文件查看器、高速帮助、以及节点查看器中的一个内容。
下半个工具窗体显示的内容是文件模板库、代码片断库、对象库和媒体库的当中一个内容。要想实现这4个内容的切换。能够通过使用此窗体下半部分在顶部显示的图标来进行切换。
3.编辑窗体
编辑窗体能够用来编写代码或编辑场景。
在顶端,有左右箭头和整个项目的层次显示。
4.目标窗体
目标窗体中包括了项目的程序和配置。这些配置指定了怎样构建程序代码。如图1.41所看到的。
在目标窗体的顶部,能够选择General、Capabilities、Info、Build
Settings、Build Phases、Build Rules中的内容。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图1.41 目标窗体
Xcode中执行程序
了解了Xcode的界面构成后。我们来看Xcode是怎样进行程序执行的。执行程序仅仅须要单击执行button。如图1.42所看到的,程序会自己主动进行执行了。在执行程序前首先对程序进行编译。假设程序正确,会出现一个Build
Succeeded字符串。如图1.43所看到的。假设程序出现错误,那么就会出现一个Build Failed字符串,如图1.44所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图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模拟器
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
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)选择须要加入的图像,单击Addbutton,实现图像的加入。
加入后的图像就会显示在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)选择“中文简体”选项。轻拍Donebutton,弹出动作表单。如图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所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图1.63 设置模拟器的旋转 图1.64 执行效果
图1.63是将Hello World应用程序中的模拟器进行了水平放置。
此时执行程序。会看到如图1.64所看到的的效果。
2.使用代码
代码来实现设备方向的改变。首先须要使用到supportedInterfaceOrientations()方法来实现设备方向的设置。其语法形式例如以下:
func supportedInterfaceOrientations() -> Int
当中,设备的方向包含7个,如表1-5所看到的。
表1-5 旋转方法
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
设置好设备的方向后,须要使用到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”对话框。选择当中的“删除”button。如图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所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图1.68 设计场景
此时执行程序。会看到如图1.69所看到的的效果。
图1.69 执行效果
假设想要让新加入的标签对象有一个独特的风格。须要使用Show the SKNode inspector面板。如图1.70所看到的。
图1.70 设置标签
在图1.70中,我们将标签的Text设置为了Sprite
Kit,将标签的Color设置为了黑色。此时执行程序,会看到如图1.71所以的效果。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图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的介绍的更多相关文章
- iOS Sprite Kit教程之滚动场景
iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示. 图2.26 植物大战僵尸 在图2.26中,用 ...
- iOS Sprite Kit教程之场景的切换
iOS Sprite Kit教程之场景的切换 Sprite Kit中切换场景 每一个场景都不是单独存在的.玩家可以从一个场景中切换到另外一个场景中.本小节,我们来讲解场景切换.在每一个游戏中都会使用到 ...
- iOS Sprite Kit教程之场景的设置
iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测 ...
- iOS Sprite Kit教程之真机测试以及场景的添加与展示
iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在 ...
- iOS Sprite Kit教程之使用帮助文档以及调试程序
iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文 ...
- iOS Sprite Kit教程之编写程序以及Xcode的介绍
iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xco ...
- iOS Sprite Kit教程之申请和下载证书
iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的.例如,在模拟器上没有重力感应.相机机等.如果想要进行此方面的游戏的开发,进行程序测试时,模拟器显 ...
- ios游戏开发 Sprite Kit教程:初学者 1
注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点 Sprite Kit vs Cocos2D-iPhone vs Cocos2D- ...
- Sprite Kit教程:初学者
作者:Ray Wenderlich 原文出处:点击打开链接 http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners 转自 ...
随机推荐
- linux selenium运行chrome
chrome版本要和chromedriver版本匹配才能正常运行.
- 浅谈Java中静态初始化块跟非初始化块
众所周知在JAVA编程语言中有两种初始化块: 静态初始化块 非静态初始化块 他们到底有什么区别呢?今天就浅谈一下JAVA中静态初始化块和非静态初始化块的区别 静态初始化块 定义: ...
- wp8开发时模拟器无法联网解决方法
关于模拟器无法联网的正常解决方案在网上有很多 这里讲的是我在做测试的时候模拟器无法上网的特殊情况 由于使用的是无线网络 可能有一些差别 过程如图: 启动模拟器 如果之前没有设置过模拟器的交换器则会出现 ...
- Nginx auto_index和auth_basic
Nginx auto_index和auth_basic 1.nginx auto_index nginx站点目录浏览功能,默认情况下为关闭 启用或禁用目录列表输出 开启这个功能的前提是站点目录下没有首 ...
- Linux组件封装(三)使用面向对象编程封装Thread
C++11提供了thread,但是过于复杂,我们还是倾向于在项目中编写自己的Thread. Posix Thread的使用这里不再赘述. 重点是这个函数: #include <pthread.h ...
- springboot 有用网址收集
http://www.ityouknow.com/spring-boot.html springboot多数据源配置: https://blog.csdn.net/neosmith/article/d ...
- sort-colors——排序3种数字
题目描述 Given an array with n objects colored red, white or blue, sort them so that objects of the same ...
- 如何手动编译运行带包 java 程序
带包的java程序比普通java程序的编译稍微复杂一些.例如下面的例子: package cn.guopeng; import java.util.*; public class hello { pu ...
- java检测http请求的ip地址 Java问题通用解决代码
以后再用到的话,至少能起个参考作用 java实现,struts2的Action中,依赖HttpServletRequest package net.dookoo.web.action; i ...
- 实现Tab功能
网上实现Tab功能的方法有很多,这里我使用Fragment的方法,我觉着比较简单易懂 MainActivity private android.app.FragmentManager fragment ...