Swift游戏开发实战教程(霸内部信息大学)

Swift游戏开发实战教程(大学霸内部资料)

Swift游戏开发实战教程(霸内部信息大学)

试读下载地址:http://pan.baidu.com/s/1sj7DvQH

介绍:本教程是国内第一本Swift游戏开发专向资料。

本教程具体解说记忆配对、太空侵略者、Simon记忆、迷你高尔夫、银河大战五个游戏的开发。在项目解说同一时候,还着具体介绍了图形绘制、游戏引擎、音频引擎、用户交互、传感器等专向技术。

最后。教程解说苹果专用游戏框架Sprit Kit的使用。为了帮助读者充分了解实际开发,教程还具体解说游戏开发的必备知识,如帐号绑定、公布游戏等内容。

前言

2014年9月。苹果公司推出新一代开发语言Swift。

该语言开发效率更高。受到苹果开发人员的广泛欢迎。国内开发领域中,大量的开发人员从Objective-C转向Swift语言。本教程是国内第一本Swift游戏开发专向资料。

本教程具体解说记忆配对、太空侵略者、Simon记忆、迷你高尔夫、银河大战五个游戏的开发。在项目解说同一时候,还着具体介绍了图形绘制、游戏引擎、音频引擎、用户交互、传感器等专向技术。

最后,教程解说苹果专用游戏框架Sprit
Kit的使用。为了帮助读者充分了解实际开发,教程还具体解说游戏开发的必备知识。如帐号绑定、公布游戏等内容。

1.学习所需的系统和软件

  • 安装Mac OS X 10.9.4操作系统

  • 安装Xcode 6.0.1

2.学习建议

大家学习之前,能够致信到xxxxxxxxxxxx,获取相关的资料和软件。假设大家在学习过程遇到问题,也能够将问题发送到该邮箱。

我们尽可能给大家解决。

文件夹

第1章  开发环境搭配--Xcode的安装与执行 1

1.1  苹果账号 1

1.1.1  苹果账号的成员分类 1

1.1.2  注冊免费的苹果账号 1

1.1.3  注冊非免费的苹果账号 4

1.2  Xcode的下载和安装 6

1.2.1  App Store中下载和安装Xcode 6

1.2.2  其它站点下载和安装Xcode 9

1.3  绑定苹果账号 10

1.4  更新组件和文档 11

1.5  首次打开Xcode 12

1.6  Xcode的界面介绍 15

1.6.1  导航窗体 15

1.6.2  工具窗体 16

1.6.3  编辑窗体 17

1.6.4  目标窗体 18

第2章  编写第一个Swift程序 19

2.1  执行程序 19

2.2  模拟器的操作 20

2.2.1  模拟器与真机的差别 21

2.2.2  退出应用程序 21

2.2.3  应用程序图标的设置 22

2.2.4  语言设置 24

2.2.5  旋转 26

2.2.6  删除应用程序 27

2.3  编辑界面 28

2.3.1  界面介绍 28

2.3.2  设计界面 30

2.3.3  视图对象库的介绍 33

2.4  编写代码 34

2.5  调试 37

2.6  真机測试 39

2.6.1  申请和下载证书 40

2.6.2  实现真机測试 49

2.7  使用帮助文档 49

第3章  iPhone游戏开发基础--记忆配对游戏 51

3.1  游戏介绍 51

3.2  开发游戏之前的准备工作 52

3.2.1  创建项目 52

3.2.2  加入图像 53

3.3  主菜单模块 54

3.4  配对模块 57

3.4.1  设计界面 57

3.4.2  卡牌的翻转 61

3.5  核心功能--卡牌的配对 68

3.5.1  翻转两个卡牌 68

3.5.2  推断卡牌 69

3.5.3  配对成功失败的操作 69

3.5.4  完毕全部配对 71

3.6  配对模块的额外功能 73

3.6.1  推測次数功能 73

3.6.2  提高游戏的难度 74

3.7  分数榜单模块 75

3.7.1  准备工作 75

3.7.2  界面设计 76

3.7.3  实现分数的显示 78

3.8  关于游戏模块 81

3.9  场景切换 82

3.9.1  什么是场景切换 83

3.9.2  实现场景切换 84

3.9.3  过渡动画效果 86

3.9.4  所有的场景切换 87

第4章  太空侵略者--绘制图像 91

4.1  游戏介绍 91

4.2  开发游戏之前的准备工作 92

4.3  主菜单模板 92

4.4  射击游戏模板 93

4.4.1  准备工作 94

4.4.2  设计界面 94

4.5  加入飞船 95

4.6  移动飞船 96

4.6.1  向左移动 97

4.6.2  向右移动 97

4.7  创建敌人 99

4.7.1  创建单个敌人的创建 99

4.7.2  创建多个敌人 100

4.8  移动敌人 101

4.9  发射子弹 103

4.9.1  飞船的子弹 103

4.9.2  敌人的子弹 105

4.10  场景的切换 107

第5章  太空侵略者2--游戏引擎 110

5.1  游戏介绍 110

5.2  开发游戏前的准备工作 111

5.3  主菜单模块 112

5.4  射击游戏模块 113

5.5  了解状态机 114

5.6  使用代码加入射击游戏界面元素 115

5.6.1  提示界面 115

5.6.2  飞船 117

5.6.3  敌人 122

5.7  检測碰撞 127

5.7.1  敌人的子弹击中飞船的检測 127

5.7.2  飞船的子弹击中敌人的检測 128

5.8  计分功能 130

5.9  歼灭全部敌人 130

5.10  分数榜模块 132

5.10.1  准备工作 132

5.10.2  界面设计 132

5.10.3  实现分数的显示 134

5.11  场景切换 138

第6章  Simon记忆游戏--音频引擎 142

6.1  游戏介绍 142

6.2  开发游戏之前的准备工作 143

6.3  主菜单模块 146

6.4  游戏模块 147

6.4.1  准备工作 148

6.4.2  界面设计 148

6.5  加入颜色提示序列 149

6.5.1  加入提示声音 150

6.5.2  加入颜色提示 152

6.6  玩家推測 153

6.7  加入背景音乐 155

6.8  游戏模块的额外功能 156

6.8.1  显示游戏处于关数 156

6.8.2  提高游戏的难度 157

6.9  游戏介绍模块 159

6.10  场景切换 160

第7章  迷你高尔夫--用户交互 162

7.1  游戏介绍 162

7.2  开发游戏之前的准备工作 163

7.3  主菜单模块 163

7.4  游戏模块 164

7.4.1  准备工作 165

7.4.2  界面设计 165

7.4.3  加入高尔夫球 166

7.4.4  移动高尔夫球 167

7.5  用户交互中的不足 169

7.5.1  边界的限定 169

7.5.2  速度限定 170

7.5.3  进洞的限定 171

7.6  杆数显示 174

7.7  游戏界面模块 175

7.8  场景切换 176

第8章  银河大战--Sprite Kit游戏引擎和传感器应用 181

8.1  游戏介绍 181

8.2  创建Game类型项目 182

8.2.1  Game模板类型简单介绍 182

8.2.2  创建项目 183

8.2.3  加入图像和音频文件 185

8.3  主菜单模块 185

8.4  射击游戏模块 187

8.5  为射击游戏界面加入元素 187

8.5.1  准备工作 187

8.5.2  什么是Sprite Kit 188

8.5.3  使用SKSpriteNode加入背景 188

8.5.4  使用SKSpriteNode加入飞船 190

8.5.5  使用SKSpriteNode加入敌人 191

8.6  发射子弹 192

8.6.1  加入子弹 192

8.6.2  通过触摸发射子弹 192

8.7  使用传感器操控飞船 194

8.7.1  传感器介绍 194

8.7.2  推断传感器是否可用 194

8.7.3  实现移动 195

8.8  碰撞检測 197

8.9  分数显示 198

8.9.1  使用SKLabelNode加入显示分数的节点 199

8.9.2  实现分数的显示 199

8.10  加入声音 200

8.10.1  进入射击游戏界面的声音 200

8.10.2  子弹击中敌人的声音 201

8.11  游戏介绍模块 201

8.12  场景切换 202

第9章  应用程序的公布 205

9.1  创建App ID 205

9.2  申请公布证书 206

9.2.1  申请证书 206

9.2.1  申请证书相应的配置文件(Provision File) 209

9.3  准备提交提交应用程序 211

9.3.1  创建应用及基本信息 211

9.3.2  项目的相关设置 214

9.4  提交应用程序到App Store上 219

9.5  常见原因未通过审核 226

版权声明:本文博主原创文章,博客,未经同意不得转载。

上一篇:LVS负载均衡实现双向热备


下一篇:Python 安装第三方模块时 报Retrying(Retry(total=4, connect=None, read=None, redirect=None, status=None))...[Wi