书籍详情

iOS和tvOS 2D游戏开发教程

iOS和tvOS 2D游戏开发教程

作者:(美)raywenderlich.com教程开发组

出版社:人民邮电出版社

出版时间:2017-02-01

ISBN:9787115442963

定价:¥109.00

购买这本书可以去
内容简介
  Sprite Kit是Apple内建的框架,专门用于开发iOS的2D游戏。tvOS是Apple TV所使用的操作系统平台,可以将App和游戏等呈现到大屏幕的TV上。本书详细介绍了如何使用Apple内建的2D游戏框架Sprite Kit和Swift语言来开发iOS和tVOS游戏。全书共分为5个部分29章。每个部分针对一类技术主题,并且通过一款生动的游戏的开发贯穿其中。当学习完每个部分的时候,读者通过一款游戏的关卡或功能的逐步完成和完善,不知不觉掌握了作者所要介绍的技术主题。第1部分包括前7章,涵盖了用Sprite Kit进行2D游戏开发的基础知识,分别介绍了角色、手动移动、动作、场景、相机、标签等主题,并且初步认识了tvOS。这部分将开发一款叫做Zombie Conga的僵尸游戏,并将其迁移到tvOS上。第二部分包括第8章到第13章,主要介绍场景编辑器、游戏开发的物理知识,裁剪、视频和形状节点以及中级tvOS知识。这部分将开发一款叫做Cat Nap的谜题游戏,并将其迁移到tvOS上。第三部分关注给游戏添加特效,包括第14章到第17章,将开发一款叫做Drop Charge的游戏,并通过状态机、粒子系统、声影效果、动画等众多技术来点亮这款游戏。第四部分包括第18章到第20章,主要关注iOS 9新引入的GameplayKit技术。这部分会开发一款Dino Defense塔防攻击游戏,并通过实体-组件系统、寻路算法和代理、目标和行为等技术,实现游戏中的恐龙的寻路和移动行为。第五部分包括第21章到第24章,涉及贴图地图、程序式关卡生成、GameplayKit随机性和游戏控制器等高级话题。这部分将开发一款叫做Delve的地牢探险游戏,并应用各章所介绍的技术。第六部分包括第24章到第29章,涉及和游戏相关的其他技术,包括向游戏中添加Game Center排行榜和成就、使用ReplayKit录制游戏视频并进行分享、把iAd加入到游戏中,以及程序员如何实现游戏美工。这部分将打造一款叫做Circuit Racer的赛车游戏中,并加入各章所所介绍的技术。 本书内容详尽、生动有趣,通过丰富、完整的游戏案例,帮助读者学习和掌握全新的游戏开发技术。本书适合对iOS和tvOS上的游戏开发感兴趣的初学者阅读参考。
作者简介
  Mike Berg是一位全职的游戏美术师,他很幸运地和来自全世界的独立游戏开发者一起工作。当他没有处理像素色彩的时候,他喜欢美食、花时间和家人在一起,以及玩游戏并感受快乐。可以通过www.weheartgames.com找到他的作品。Michael Briscoe是一位有着30多年经验的独立的软件开发者。他所选择的平台包括Apple的所有产品,从Macintosh、 到iPhone、iPad和Apple TV。他的专长是开发娱乐性软件,例如游戏和模拟器。可以访问他的Web站点skyrocketsoftware. wordpress.com。Kauserali Hafizji是一位开发者。他是一位热衷编写代码的程序员,甚至在周末的时候,他也在编程。一本好书,泡个澡,再吃上一顿大餐,对他来说就可以过一个很好的周末了。你可以通过@Ali_hafizji在Twitter上找到他。Neil North是一位资源管理员、软件开发者和业务自动化专家,他很喜欢开发独立的游戏、从事音频工程,以及帮助其他人实现有创意的目标。他还教授iOS游戏和App开发,并且在Udemy和CartoonSmart上都开设了课程。Neil居住在澳大利亚,你可以访问他的网站apptlycreative.com。Toby Stephens有20多年的软件开发经验,并且目前是伦敦的inplaymaker移动开发总监。Toby热衷于游戏编程。他还会编写乐曲,并且喜欢烘焙面包。可以通过@TJShae在Twitter上联系他,也可以访问他的网站website: tjshae.com。Rod Strougo从Apple II开始了自己的物理和游戏之旅,开始用Basic编写游戏。Rod的职业生涯有过转型,他花了15年的时间为IBM和AT&T编写软件。在那些日子里,他始终保持着在游戏开发和教学方面的热忱,并且在Big Nerd Ranch等处提供iOS培训。他起初来自巴西的Rio de Janeiro,现在和妻子和儿子一起居住在亚特兰大。Marin Todorov是一位独立的iOS开发者和作者。他20多年前开始在Apple II上就行开发,并且一直持续到今天。除了编写代码,Marin还喜欢写博客、写书、教学和演讲。他有时候会花时间为开源项目编写代码。他居住在Santiago。可以访问他的Web站点www.underplot.com。Ray Wenderlich是一位iPhone开发者,也是Razeware LLC的创始人。Ray对于开发App和教授其他人开发App都充满了热情。他和他的教程团队已经编写了很多iOS开发教程,参见www.raywenderlich.com 。
目录
第一部分 基 础 知 识
第1章 精灵 2
1.1 开始 2
1.1.1 通用App支持 6
1.1.2 添加图像 7
1.1.3 启动界面 8
1.2 显示精灵 11
1.2.1 创建精灵 11
1.2.2 把精灵加到场景 11
1.2.3 定位精灵 12
1.2.4 设置精灵的锚点 13
1.2.5 旋转精灵 14
1.2.6 获取精灵的大小 15
1.2.7 精灵和节点 15
1.2.8 节点和z位置 16
1.2.9 最后修整 16
1.3 挑战 17
挑战1:添加僵尸 17
挑战2:进一步的文档 18
第2章 手动移动 19
2.1 Sprite Kit游戏循环 19
2.2 移动僵尸 21
2.2.1 第1次迭代:每帧固定
移动 21
2.2.2 第2次迭代:速率乘以时间
增量 23
2.2.3 第3次迭代:朝着触摸的
方向移动 24
2.2.4 第4次迭代:边界检测 28
2.2.5 第5次迭代:游戏区域 29
2.3 旋转僵尸 31
2.4 挑战 33
挑战1:数学工具 33
挑战2:让僵尸停下来 35
挑战3:平滑移动 35
第3章 动作 38
3.1 移动动作 38
3.2 连续动作 40
3.3 等待动作 41
3.4 运行代码块动作 42
3.5 反向动作 42
3.6 重复动作 44
3.7 定期生成 45
3.8 从父节点删除动作 46
3.9 动画动作 47
3.10 停止动作 48
3.11 缩放动画 49
3.12 旋转操作 50
3.13 组动作 51
3.14 碰撞检测 52
3.15 Sprite Kit游戏循环第2轮 54
3.16 声音动作 55
3.17 共享动作 55
3.18 挑战 56
挑战1:ActionsCatalog演示程序 56
挑战2:一个受保护的僵尸 57
挑战3:康茄舞队 57
第4章 场景 59
4.1 获胜或失败的条件 59
4.2 创建一个新的场景 61
4.3 转换到一个场景 62
4.4 创建一个定制的场景初始化
 程序 63
4.5 背景音乐 65
4.6 挑战 65
挑战1:主菜单场景 66
第5章 相机 67
5.1 灯光、相机,开始 67
5.2 滚动的背景 70
5.3 不断滚动的背景 72
5.4 修改游戏设置 74
5.5 挑战 75
挑战1:修改猫女士 75
第6章 标签 77
6.1 内建字体和字体族 77
创建标签 79
6.2 给Zombie Conga添加一个
 标签 80
6.3 对齐方式 81
6.4 加载定制字体 83
6.5 更新标签文本 86
6.6 挑战 86
挑战1:小猫计数 86
第7章 初识tvOS 88
7.1 tvOS用户输入 88
7.2 开始 89
7.3 按钮按下 92
7.4 添加一个tvOS目标 93
7.5 修正触摸处理 97
7.6 上架图像和3D图标 99
第二部分 物理和节点
第8章 场景编辑器 102
8.1 开始 103
8.1.1 材质图册简介 104
8.2 开始使用场景编辑器 105
8.2.1 Object Library 106
8.2.2 添加和放置精灵 107
8.2.3 布置第一个场景 108
8.3 文件引用 110
8.4 动画和动作引用 112
给节点添加动作 113
8.5 关于时间线的更多介绍 114
重复动作 115
8.6 挑战 118
挑战1:进一步创建小猫动作 118
挑战2:进一步创建小猫场景 120
第9章 物理基础 122
9.1 Sprite Kit中的物理引擎 122
物理实体 123
9.2 开始 124
9.3 第一个Playground 126
9.4 创建一个Sprite Kit Playground 127
9.5 圆形实体 131
9.6 边缘闭合实体 133
9.7 矩形实体 134
9.8 定制形状的实体 134
9.9 可视化实体 135
9.10 复杂形状的实体 136
9.11 物理实体的属性 138
9.12 应用冲击 139
9.13 挑战 141
挑战1:力量 141
挑战2:体感实体 142
第10章 中级物理 143
10.1 开始 143
10.2 定制节点类 144
10.3 将精灵连接到变量 146
10.4 添加物理 147
10.4.1 在场景编辑器中创建简单
 实体 148
10.4.2 模拟场景 149
10.4. 3用代码创建简单实体 150
10.4.4 创建定制实体 151
10.5 SKTUtils简介 151
10.6 背景音乐 152
10.7 控制实体 152
10.7.1 分类实体 153
10.7.2 处理触摸 155
10.7.3 检测实体之间的碰撞 157
10.7.4 检测实体之间的接触 159
10.8 最终修改 161
10.8.1 添加一条游戏进行中的消息 161
10.8.2 失败场景 162
10.8.3 播放动画 164
10.8.4 获胜场景 165
10.9 挑战 166
挑战1:统计弹跳次数 167
第11章 高级物理 168
11.1 Spirt Kit游戏循环第3轮 168
11.2 关卡2简介 170
11.3 加载关卡 171
11.4 场景编辑器,第2轮 171
11.4.1 弹弓 174
11.5 接合概览 175
11.5.1 固定接合 175
11.5.2 有限接合 176
11.5.3 弹性接合 176
11.5.4 别针接合 177
11.5.5 滑动接合 177
11.6 接合的应用 178
11.6.1 使用固定接合 178
11.6.2 使用弹性接合 180
11.7 Sprite Kit游戏循环,第4轮 181
11.8 限制概览 182
11.8.1 实现绳子的限制 183
11.8.2 更多限制 184
11.9 动态地创建和删除接合 184
11.10 组合形状 187
11.10.1 设计关卡3 188
11.10.2 创建组合对象 189
11.11 关卡推进 192
11.12 挑战 192
挑战1:给Cat Nap再添加一个关卡 193
第12章 裁剪、视频和形状节点 195
12.1 开始 196
12.2 裁剪节点 196
12.3 视频节点 200
12.3.1 创建一个视频节点 200
12.3.2 视频播放 202
12.3.3 开始和结束 204
12.3.4 迪斯科舞小猫 206
12.4 形状节点 208
12.4.1 添加一个形状节点 209
12.4.2 形状节点基础 210
12.4.3 添加提示箭头 211
12.5 挑战 214
挑战1:提示无处不在 214
挑战2:当fillColor遇到fillTexture 214
第13章 中级tvOS 215
13.1 添加一个tvOS目标 215
上架图像和3D图标 216
13.2 将代码移植到tvOS 218
13.3 Apple TV遥控,第2轮 220
13.3.1 TV控制第1部分:谁应该采取
 行动 220
13.3.2 TV控制第2部分:停留在循
 环中 222
13.3.3 和Apple TV模拟器交互 225
13.3.4 TV控制第3部分:点击所有
 内容 226
13.4 挑战 227
挑战1:打磨Apple TV上的所有关卡 227
第三部分 果 汁
第14章 开发Drop Charge 232
14.1 开始 232
添加图片 233
14.2 在场景编辑器中构建游戏世界 234
14.2.1 配置场景 234
14.2.2 添加背景精灵 234
14.2.3 添加前景精灵 236
14.2.4 创建平台 236
14.2.5 创建金币 237
14.3 编写游戏设置代码 238
14.3.1 添加平台 238
14.3.2 更多平台 241
14.3.3 扔炸弹 241
14.3.4 获取物理效果 242
14.3.5 碰撞检测 243
14.3.6 使用Core Motion来控制玩家 244
14.3.7 相机跟踪 245
14.3.8 让岩浆流动 247
14.3.9 重复背景、金币和平台 249
14.3.10 还有一件事情 249
14.4 挑战 250
挑战1:创建跨5块的、可破裂的
 平台 250
挑战2:创建一个“特殊的”金币
 箭头 250
挑战3:创建额外的平台和金币
 样式 251
挑战4:为新的覆盖对象添加代码 252
第15章 状态机 254
15.1 状态机是如何工作的 254
15.2 开始 256
15.3 状态1:等待点击 256
15.4 状态2:等待炸弹 257
15.5 状态3:玩游戏 259
更新游戏设置 260
15.6 状态4:游戏结束 261
15.7 最后修改 262
15.8 挑战 263
挑战1:一个英雄状态机 263
第16章 粒子系统 265
16.1 粒子系统是如何工作的 266
16.1.1 粒子系统理论 266
16.1.2 粒子系统的实际应用 266
16.2 粒子系统编程 267
16.2.1 粒子系统的核心属性 268
16.2.2 让模拟提前进行 270
16.2.3 粒子系统的更多核心属性 271
16.2.4 范围属性 271
16.2.5 关键帧属性 271
16.2.6 序列属性 272
16.3 可视化地创建粒子系统 273
16.3.1 创建一个SKS文件 273
16.3.2 Xcode粒子发射器编辑器 274
16.3.3 制作岩浆 275
16.3.4 加载SKS文件 276
16.3.5 持续的系统和运行一次的
 系统 277
16.3.6 哪里有火,哪里就会有烟 277
16.3.7 目标粒子系统 279
16.4 挑战 280
挑战1:收集常规金币的效果 280
挑战2:收集特殊金币的效果 280
挑战3:破裂平台效果 280
挑战4:玩家轨迹效果 280
第17章 点亮游戏 282
17.1 给游戏添加果汁的3个步骤 283
17.1.1 步骤1:角色 283
17.1.2 步骤2:交互 283
17.1.3 步骤3:5种基本的特效 284
17.2 开始 285
17.3 音乐和声音效果 285
17.3.1 创建变化的节奏 286
17.3.2 添加声音效果 286
17.3.3 最后的声音效果 288
17.4 帧动画 289
17.4.1 可视化地创建动作 289
17.4.2 通过时间线编辑 290
17.4.3 使用金币应用 291
17.4.4 用代码实现动画动作 292
17.5 粒子效果 294
17.5.1 随机爆炸 295
17.5.2 增加力量粒子效果 296
17.5.3 游戏结束了 297
17.6 屏幕效果 297
振动、振动,还是振动 298
17.7 精灵效果 299
弹跳的平台 300
17.8 最后的修改 301
17.9 挑战 302
挑战1:创建一个“挤压和拉伸”效果 302
挑战2:将Drop Charge移植到tvOS上 302
17.10 如何继续学习 302
第四部分 GameplayKit
第18章 实体-组件系统 304
18.1 开始 304
18.1.1 游戏层 305
18.1.2 材质图册 305
18.2 GameplayKit简介 306
18.3 实体-组件系统 307
18.4 GameplayKit的实体-组件系统 308
18.5 第一个组件 308
18.6 第一个实体 309
18.7 将实体添加到场景 310
18.8 阴影组件 312
18.9 动画组件 313
18.9.1 GKComponentSystem 316
18.9.2 添加到实体 317
18.10 重用组件 318
18.11 发射组件 320
发射炮弹 322
18.12 挑战 324
挑战1:生命值组件 325
第19章 寻路算法 328
19.1 GameplayKit中的寻路 328
19.1.1 基于网格的寻路 328
19.1.2 基于障碍物的寻路 329
19.2 塔防障碍物 329
打开GameScene.sks 329
19.3 塔防选择器动画 332
19.4 选择塔防 334
19.5 显示菜单 335
19.6 放置塔防 336
19.7 创建障碍物图形 337
19.8 将塔防添加到障碍物图形 337
19.9 用寻路算法移动实体 338
19.10 挑战 341
挑战1:更多障碍物 341
挑战2:精灵的Z位置 344
第20章 代理、目标和行为 346
20.1 GameplayKit的代理、目标和行为 346
20.2 添加代理 347
20.3 添加行为和目标 348
20.4 在代理上设置行为 349
实现GKAgentDelegate 351
20.5 音乐插曲 352
20.6 攻击波 352
20.6.1 发送攻击波 354
20.6.2 随机选取起始位置 355
20.6.3 从攻击波中删除恐龙 356
20.7 HUD 358
20.8 减少生命数 359
20.9 花钱建造塔防 360
20.10 减慢速度效果 361
20.11 挑战 364
挑战1:TV版的Dino Defense 364
第五部分 高 级 话 题
第21章 贴图地图游戏 366
21.1 Delve简介 366
21.2 开始 367
21.2.1 开始关卡构建 368
21.2.2 创建一个基本的关卡 369
21.2.3 显示关卡 369
21.2.4 添加一个相机节点 371
21.3 打造一个基于贴图的关卡 372
预先设置关卡 374
21.4 实现状态机 375
21.5 游戏需要一个英雄人物 377
21.5.1 创建精灵组件 378
21.5.2 将英雄添加到场景中 378
21.5.3 创建动画组件 380
21.5.4 添加组件系统 384
21.5.5 让英雄移动起来 385
21.5.6 通过倾斜来移动 387
21.5.7 更新动画 389
21.5.8 将相机聚焦到英雄身上 390
21.5.9 添加碰撞 390
21.6 挑战 392
挑战1:定制关卡 392
第22章 随机性 393
22.1 随机意味着什么 393
22.2 GameplayKit的随机性 394
22.2.1 随机性分布 394
22.2.2 随机性源 396
22.3 醉汉行走算法 397
22.4 开始 397
22.5 实现醉汉行走算法 401
22.5.1 更新地图生成器 402
22.5.2 到达出口 404
22.6 制作更好的关卡 406
组合分布 408
22.7 挑战 411
挑战1:随机贴图 411
第23章 程序式关卡 412
23.1 基于房间的程序式关卡设计 412
23.2 构建更好的生成器 413
构建房间 413
23.3 填充地牢 417
23.3.1 处理生命值 418
23.3.2 引入石人 420
23.3.3 创建一个武器 427
23.4 挑战 431
挑战1:难度 432
第24章 游戏控制器 433
24.1 控制器格式 434
24.2 开始 434
24.3 创建控制器管理器 436
24.3.1 指定控制 439
24.3.2 标准游戏手柄 440
24.3.3 使用控制器命令 440
24.3.4 移动控制 442
24.3.5 扩展游戏手柄 443
24.4 添加tvOS目标 444
24.5 在tvOS上支持控制器 446
24.5.1 连接到控制器 447
24.5.2 微游戏手柄 447
24.5.3 绑定控制 449
24.6 挑战 450
挑战1暂停游戏 450
第六部分 额 外 章 节
第25章 Game Center成就 452
25.1 开始 452
25.2 Game Center简介 453
25.3 配置App以使用Game Center 454
25.3.1 打开Game Center 455
25.3.2 在iTune Connect上注册App 455
25.3.3 配置Game Center成就 457
25.4 认证本地玩家 459
25.4.1 认证回调 460
25.4.2 将认证加入到游戏中 460
25.5 添加成就 463
25.5.1 为成就创建一个辅助类 463
25.5.2 将成就整合到游戏中 464
25.6 初始化内建的用户界面 466
将UI加入到游戏中 467
25.7 挑战 469
挑战1:Racing addict和成就 469
第26章 Game Center排行榜 470
26.1 支持排行榜 470
26.1.1 步骤1:认证本地玩家 470
26.1.2 步骤2:创建一个排行榜
 策略 470
26.1.3 步骤3:在iTunes Connect中
 配置排行榜 471
26.1.4 步骤4:向Game Center报告
 得分 474
26.1.5 步骤5:向玩家显示排行榜 476
26.2 排行榜集合 477
26.3 Game Center的安全性 479
26.3.1 提交如何工作 480
26.3.2 限制作弊 480
26.4 挑战 480
挑战1:排行榜集合 480
第27章 ReplayKit 481
27.1 ReplayKit架构 481
27.2 整合ReplayKit 482
27.2.1 步骤1:创建一个策略来开始和
 停止记录 483
27.2.2 步骤2:修改用户界面 484
27.2.3 步骤3:检查可用性 488
27.2.4 步骤4:开始和停止记录 491
27.2.5 步骤5:预览和分享记录 496
第28章 iAd 498
28.1 iAd简介 498
28.2 iAd是如何工作的 498
28.3 Ad格式 499
28.3.1 横幅广告 499
28.3.2 间隙广告 500
28.3.3 媒介反馈广告 501
28.3.4 预滚动广告 501
28.4 整合iAd 501
28.5 加入iAd网络 501
28.6 加入iAd框架 502
28.7 显示横幅广告 504
28.8 显示间隙广告 506
28.9 iAd最佳实践 507
28.10 挑战 507
挑战1:自动显示 507
第29章 写给程序员的2D美工知识 508
29.1 选择路径:雇人还是DIY 508
29.1.1 雇佣一名美术师 508
29.1.2 自己做美工 508
29.2 如何找到并雇佣一位美术师 509
29.2.1 会议和聚会 509
29.2.2 Twitter 509
29.2.3 搜索简历 509
29.2.4 招募申请者 510
29.2.5 这真的有用吗 510
29.3 向美术师付酬 510
29.3.1 收入分成合同 510
29.3.2 固定报酬合同和分小时报酬 510
29.3.3 价格预期 511
29.4 开始 511
29.5 开始绘制草图 512
29.6 将草图导入到Illustrator中 515
29.7 用矢量线条描摹草图 517
29.7.1 编辑路径 519
29.7.2 创建复杂的线条 519
29.7.3 将线条的末端圆角化 520
29.7.4 完成轮廓 520
29.8 定制画笔宽度 520
29.8.1 为Illustrator创建一个默认的
 宽度样式 521
29.8.2 针对不同的线条形状,使用
 其他的宽度样式 521
29.9 给美工图上色 522
29.9.1 使用路径寻找器来组合
 形状 524
29.9.2 给眼睛上色 525
29.9.3 为某个区域上色 526
29.9.4 关于图层的一点说明 527
29.9.5 调整对象层的顺序 528
29.10 关于阴影和光线 529
29.10.1 表现深度的额外阴影细节 530
29.10.2 给轮廓上色 531
29.11 导出PNG文件 532
29.12 挑战 534
挑战1:老鼠 534
挑战2:小狗 534
猜您喜欢

读书导航