《Swift游戏开发实战》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:刘阳编著
  • 出 版 社:北京:海洋出版社
  • 出版年份:2015
  • ISBN:9787502791681
  • 页数:203 页
图书介绍:全书共分为22章,着重介绍了Swift语言简介、Swift语言基础、基本操作符、XAML的应用、控制流、函数、闭包、枚举类型、类和结构体、方法、类的继承、自动引用计数、可选链、类型转换、扩展、协议、泛型、访问控制、高级操作符和SpriteKit引擎等知识。最后通过制作进击的小鸟—Flappybird和经典游戏打砖块两个综合范例,介绍了使用Swift开发游戏的过程和方法。

第1章 Swift语言简介 1

1.1 Swift的概念 1

1.2 Swift的特点 1

1.3 Swift与Objective-C的异同 2

1.4 搭建Swift开发环境 3

1.5 创建Swift工程 4

1.6 Playground 5

1.7 本章小结 7

1.8 习题 7

第2章 Swift语言基础 8

2.1 标示符和关键字 8

2.2 简单值 9

2.3 类型推导 9

2.4 类型注释 10

2.5 打印常量和变量 10

2.6 字符串插值 11

2.7 注释 11

2.8 基本数据类型 12

2.8.1 整型 12

2.8.2 数制转换 13

2.8.3 浮点型 13

2.8.4 数字的易读性 14

2.8.5 数值间的类型转换 14

2.8.6 布尔类型 15

2.8.7 类型别名 16

2.9 字符和字符串 17

2.9.1 字符类型 17

2.9.2 字符串类型 17

2.9.3 字符串拼接 18

2.9.4 遍历字符串中的所有字符 18

2.9.5 字符串间的比较 18

2.9.6 判断字符串是否包含某个字符串 19

2.9.7 字符串的大小写转换 19

2.10 元组(Tuples) 20

2.10.1 元组的声明与定义 20

2.10.2 读取元组中的数据 20

2.10.3 为元组中的数值命名 21

2.11 可选表达式 21

2.12 强取值表达式 21

2.13 本章小结 22

2.14 习题 22

第3章 基本操作符 23

3.1 操作符的种类 23

3.2 赋值操作符 23

3.3 数值操作符 24

3.3.1 四则运算操作符 24

3.3.2 复合赋值操作符 25

3.3.3 取余操作 25

3.3.4 一元正号操作符和一元负号操作符 26

3.3.5 自增与自减操作符 26

3.4 比较操作符 27

3.5 三元条件操作符 27

3.6 空值合并操作符 28

3.7 区间操作符 28

3.7.1 闭区间运算符 29

3.7.2 半开区间运算符 29

3.8 逻辑操作符 29

3.8.1 逻辑与 29

3.8.2 逻辑或 30

3.8.3 逻辑非 30

3.8.4 逻辑操作符的组合 31

3.8.5 使用括号来明确复杂逻辑运算的优先级 31

3.9 本章小结 32

3.10 习题 32

第4章 XAML的使用 33

4.1 数组 33

4.1.1 数组声明和初始化 33

4.1.2 声明一个空的数组 34

4.1.3 数组的下标访问 34

4.1.4 添加和删除数组元素 35

4.1.5 遍历数组 36

4.1.6 数组的其他内置方法 36

4.2 字典 37

4.2.1 字典声明和初始化 37

4.2.2 创建一个空字典 38

4.2.3 读取和修改字典 38

4.2.4 遍历字典 39

4.3 本章小结 40

4.4 习题 40

第5章 控制流 41

5.1 for循环 41

5.1.1 对区间操作符循环 41

5.1.2 对数组和字典进行遍历 42

5.1.3 枚举字符串 43

5.1.4 条件增量循环 43

5.2 While循环 44

5.3 Do...While循环 45

5.4 条件语句 45

5.4.1 if条件语句 45

5.4.2 Switch语句 46

5.4.3 Fallthrough 47

5.4.4 基于区间操作符的条件判断 48

5.4.5 基于元组的条件判断 48

5.4.6 绑定值 49

5.4.7 Where语句 49

5.5 控制转移语句 50

5.5.1 continue语句 50

5.5.2 break语句 50

5.6 标签语句 51

5.7 本章小结 52

5.8 习题 52

第6章 函数 53

6.1 函数的定义和调用 53

6.2 多重参数函数 54

6.3 无参数函数 54

6.4 多重返回值函数 55

6.5 外部参数名 55

6.6 内部参数和外部参数的统一 56

6.7 默认参数 56

6.8 可变参数 57

6.9 变量参数 57

6.10 输入输出参数 58

6.11 函数类型 58

6.12 函数类型作为函数的参数 59

6.13 函数类型作为函数的返回值 59

6.14 嵌套函数 60

6.15 本章小结 60

6.16 习题 60

第7章 闭包 61

7.1 闭包表达式 61

7.1.1 闭包表达式的语法 62

7.1.2 省略参数类型 62

7.1.3 省略return语句 62

7.1.4 参数名省略 63

7.1.5 操作符函数 63

7.2 尾随闭包 63

7.3 捕获值 64

7.4 闭包是引用类型 65

7.5 本章小结 65

7.6 习题 65

第8章 枚举类型 66

8.1 枚举类型的语法 66

8.2 匹配枚举成员 67

8.3 相关值 68

8.4 初始值 69

8.5 本章小结 69

8.6 习题 69

第9章 类和结构体 70

9.1 类和结构体的异同 70

9.2 定义类和结构体 71

9.3 创建类和结构体的实例 71

9.4 对类和结构体中属性访问与赋值 72

9.5 结构体类型手动构造属性初始值 72

9.6 值类型和引用类型 72

9.6.1 值类型 73

9.6.2 引用类型 73

9.6.3 恒等运算符 74

9.7 类和结构体的选择 75

9.8 属性 75

9.8.1 存储属性 75

9.8.2 惰性存储属性 76

9.8.3 计算属性 77

9.8.4 只读计算属性 78

9.9 属性观察器 78

9.10 静态属性 80

9.11 本章小结 82

9.12 习题 82

第10章 方法 83

10.1 方法的定义 83

10.2 实例方法 83

10.3 方法的局部参数名称和外部参数名称 84

10.4 为方法的第一个参数提供外部参数名 85

10.5 self属性 85

10.6 方法的变异 86

10.7 类型方法 87

10.8 下标脚本 88

10.8.1 下标脚本语法 88

10.8.2 下标语法的常用方法 89

10.9 构造过程和构造器 90

10.9.1 无参数构造器 90

10.9.2 构造参数 91

10.9.3 构造器的外部参数名和内部参数名 91

10.9.4 构造过程中常量属性的修改 92

10.9.5 默认构造器 92

10.9.6 逐一成员构造器 93

10.9.7 构造代理 93

10.10 析构过程 94

10.11 本章小结 95

10.12 习题 95

第11章 类的继承 96

11.1 继承的定义 96

11.2 定义一个基类 96

11.3 继承一个类 97

11.4 重写 98

11.4.1 访问超类的方法、属性、下标脚本 98

11.4.2 重写方法 98

11.4.3 重写属性 99

11.4.4 重写属性观察器 99

11.4.5 重写保护和继承保护 100

11.4.6 构造器的继承 100

11.5 本章小结 102

11.6 习题 102

第12章 自动引用计数(ARC) 103

12.1 自动引用计数的工作机制 103

12.2 循环强引用 104

12.3 弱引用和无主引用 106

12.3.1 弱引用 106

12.3.2 无主引用 107

12.3.3 弱引用和无主引用的适用范围 108

12.4 闭包引起的循环强引用 108

12.5 本章小结 110

12.6 习题 110

第13章 可选链 111

13.1 为什么要用可选链 111

13.2 通过可选链调用属性 112

13.3 通过可选链调用方法 112

13.4 使用可选链调用下标脚本 112

13.5 连接多层链接 113

13.6 链接可选返回值的方法 115

13.7 本章小结 115

13.8 习题 115

第14章 类型转换 117

14.1 类型转换的定义 117

14.2 类型检测 118

14.3 向下转换 118

14.4 Any和AnyObject的类型转换 119

14.4.1 AnyObject类型 119

14.4.2 Any 120

14.5 本章小结 121

14.6 习题 121

第15章 扩展 122

15.1 扩展的定义和语法 122

15.2 扩展计算型属性 122

15.3 扩展构造器 123

15.4 扩展方法 124

15.5 修改实例方法 125

15.6 扩展下标 125

15.7 嵌套类型 125

15.8 本章小结 126

15.9 习题 127

第16章 协议 128

16.1 协议的语法 128

16.2 协议中的属性 128

16.3 协议中的方法 130

16.4 突变方法 131

16.5 构造器 131

16.6 协议类型 132

16.7 委托 133

16.8 在扩展中添加协议成员 135

16.9 通过扩展补充协议声明 136

16.10 集合中的协议类型 136

16.11 协议的继承 137

16.12 协议合成 138

16.13 校验协议 138

16.14 可选协议的规定 139

16.15 本章小结 141

16.16 习题 141

第17章 泛型 142

17.1 为什么引入泛型 142

17.2 泛型函数 143

17.3 类型参数 144

17.4 泛型类型 144

17.5 类型约束 147

17.5.1 类型约束语法 147

17.5.2 类型约束行为 147

17.6 关联类型 149

17.6.1 在协议中使用关联类型 149

17.6.2 扩展一个存在的类型为一指定关联类型 150

17.7 Where语句 150

17.8 本章小结 152

17.9 习题 152

第18章 访问控制 153

18.1 模块和源文件 153

18.2 访问级别 153

18.2.1 访问级别规则 153

18.2.2 默认访问级别 154

18.2.3 单目标应用程序的访问级别 154

18.2.4 Framework的访问级别 154

18.3 访问控制语法 154

18.4 自定义类型 155

18.5 元组类型 155

18.6 函数类型 155

18.7 枚举类型 156

18.8 嵌套类型 156

18.9 子类 156

18.10 常量、变量、属性、下标 157

18.11 本章小结 157

18.12 习题 157

第19章 高级操作符 158

19.1 位操作符 158

19.1.1 按位取反操作符 158

19.1.2 按位与操作 159

19.1.3 按位或操作 159

19.1.4 按位异或操作符 160

19.1.5 按位左移操作符和按位右移操作符 160

19.2 溢出操作符 162

19.2.1 值的上溢出 162

19.2.2 值的下溢出 163

19.2.3 除零溢出 164

19.3 操作符的优先级和结合性 164

19.4 操作符函数 165

19.4.1 中置操作符 165

19.4.2 前置和后置操作符 166

19.4.3 组合赋值操作符 166

19.4.4 比较操作符 167

19.5 自定义操作符 167

19.5.1 自定义前置操作符和后置操作符 167

19.5.2 自定义中置操作符 168

19.6 本章小结 169

19.7 习题 169

第20章 SpriteKit引擎 170

20.1 创建一个游戏工程 170

20.2 游戏工程的结构 172

20.2.1 AppDelegate.swift 172

20.2.2 GameScene.sks 173

20.2.3 GameScene.swift和GameViewController.swift 173

20.2.4 其他文件 174

20.3 编译并运行游戏 174

20.4 分析Xcode默认游戏工程代码 175

20.4.1 程序的第一个场景 175

20.4.2 视图控制器 176

20.5 本章小结 177

20.6 习题 177

第21章 进击的小鸟——Flappybird实战 178

21.1 游戏逻辑 178

21.2 准备工作 179

21.3 创建一个世界 179

21.4 添加一个小鸟 181

21.4.1 一个由帧动画组成的精灵 181

21.4.2 让小鸟自由落体 182

21.4.3 与地面碰撞 183

21.4.4 通过点击让小鸟上升 184

21.4.5 随着速度上下俯仰 184

21.5 生成管道 185

21.6 碰撞检测 187

21.7 分数统计和重新开始游戏 188

21.7.1 分数统计 188

21.7.2 重新开始游戏 189

21.8 本章小结 190

第22章 经典游戏——打砖块 191

22.1 游戏逻辑 191

22.2 资源准备 192

22.3 游戏界面准备 192

22.4 创建一个小球 193

22.4.1 给小球一个初始速度 194

22.4.2 给小球规定一个运动的范围 194

22.5 创建挡板 195

22.6 生成砖块 196

22.7 创建死亡区域 199

22.8 完善游戏的更多细节 200

22.8.1 添加音效 200

22.8.2 重置游戏和初始位置 200

22.8.3 增加难度系数 201

22.8.4 成功/失败画面 201

22.9 本章小结 203