书籍详情
《Swift游戏开发经典实例(第三版)》[47M]百度网盘|亲测有效|pdf下载
  • Swift游戏开发经典实例(第三版)

  • 作者:Jonathon,Manning,Par 著
  • 热度:4960
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

基本信息

  • 商品名:Swift游戏开发经典实例(第三版)
  • ISBN:9787519840129
  • 定价:98
  • 出版社:中国电力出版社
  • 作者:Jonathon,Manning,Paris,Buttfield-Addison

参考信息(以实物为准)

  • 出版时间:2020-01-01
  • 印刷时间:2020-01-01
  • 版次:1
  • 印次:1
  • 包装:平装
  • 开本:16开
  • 用纸:胶版纸
  • 页数:
  • 字数:424000

编辑推荐

想编写出精彩的iOS游戏吗?使用苹果的Swift编程语言,这是无可比拟的简单。本书详细介绍了iOS 游戏开发中遇到的各种问题,从架构设计到图形性能,所有内容都升级到了新的Swift版本。

这是一次全新的升级,将让你对iOS游戏开发中遇到的常见问题获得简单、直接的答案。想知道如何让物理对象移动或者补习一下游戏方面的数学知识吗?本书给出了示例代码和答案。只要你拥有一定的iOS开发和Swift基础即可。


内容简介

 

·设计游戏架构,组织游戏内容。

·用UIKit编写界面、定制菜单。

·让游戏能够检测和响应用户输入。

·使用音效、音乐和语音合成。

·通过iCloud存储和访问数据。

·用SpriteKit创建2D图形及动画。

·用物理引擎模拟真实世界。

·用SceneKit创建和绘制3D场景。

·设计AI系统进行用户测试。

·添加游戏控制,扩展显示器以及增强现实。

 


前言序言

前言

如今,移动设备已被各种游戏占领。iPhone、iPad 和iPod touch 都是非常强大的游戏平台,要做出让玩家眼前一亮的游戏从没有像现在这样容易。在iTunesApp Store 中,数量最多的App 就是游戏,从简单的“一分钟的”方块游戏到复杂的长期冒险游戏。因此,现在就是制作你个人专属游戏的最佳时机。自从有了App Store,我们就一直在做iOS 游戏。当时,我们发行了第一个iOS 策略游戏Culture,之后又制作了数以百计的游戏,种类涉及了古老的填数字游戏到□□益智游戏的各种类别。现在,在iOS 平台上运行的游戏越来越多。

本书对Swift 游戏开发中遇到的常见问题提供了简单直接的解决方案。无论你是想知道如何使物体移动,还是想补习一下游戏中的数学知识,你都能找到简单直白的答案、解释和示例代码。本书既是一本教程,也是一本参考书。通过本书,你可以从一系列的“问与答”中轻松地汲取到新的、正确的知识,也可以快速地从目录的某个标题中找到现成答案。

本书的读者对象

我们假设读者具备一定的编程技巧,至少在一定程度上了解iOS 开发:熟悉Xcode开发环境,会使用iOS 模拟器,懂得基本的Swift 语法。同时懂得如何使用iOS 设备。不需要你具备任何游戏开发知识,但至少对于你想创建什么样的游戏要有一个大概的认识。

你会发现本书的内容对所有类型的游戏都适用,当然也会有一些例外,有的技巧更适合某种游戏一些。但总体上来说,本书不是专门针对特定种类的游戏而编写的。

本书的主要内容

本书的每一章是由多个“技巧”构成:每一个“问题”都是你在游戏开发中有可能遇到的问题以及它的快捷解决方案。本书可以以任意顺序阅读,你不需要一章接一章地阅读,也不需要把每一章都从头到尾读完(但我们仍然建议你按顺序阅读,否则你可能跳过了某些关键的内容)。

每个“技巧”中包括相关问题的陈述和解决方案,即解决问题所采用的技术(或者功能的实现)。在此之后是问题讨论,更详细地讨论问题的解决办法,使读者更加理解方案的实现细节,注意事项以及其他相关知识。

各章内容简要介绍如下:

第1 章,游戏的设计

讨论游戏的整体架构和代码组织的不同方法,定时器的各种用法,以及iOS 的块语法。还会学习如何通过块和Operation Queue 来调度任务,以便让它们在将来某个时候执行;并学习如何在项目中进行单元测试。

第2 章,视图和菜单

介绍UI 以及如何利用iOS 自带的UIKit 现实用户图形界面。除了内置的GUI对象,如按钮、文本框之外,UIKit 也可以按需定制,对于某些游戏来说,UIKit 可能是你唯一需要使用的图形界面设计工具。

第3 章,输入

你将学习如何从用户获取输入并在游戏中使用这些数据,包括屏幕触摸、手势的判断(如轻触、滑动和捏合),以及其他输入方式,比如用户当前位置,或者从设备内置的各种传感器中获取数据。

第4 章,声音

讨论声效和音乐的使用。你将学习到如何加载和播放音频文件,如何访问用户内置的音乐库,以及如果用户想在玩游戏的同时听到他最喜欢歌曲,我们要怎么办。

第5 章,存储数据

讨论和存储相关的内容。游戏过程中,或多或少需要保存一些数据,有的数据比较少(如当前得分),有的数据量一般(如游戏存档),有的数据量非常大(如游戏中用到的各种多媒体资源)。在本章,你将学习到各种存储数据的方法,以及它们所适用的最佳场景。

第6 章,2D 图形和Sprite Kit

讨论iOS 自带的2D 图形库Sprite Kit。Sprite Kit 功能强大,易于使用。在本章你将学习如何创建场景,如何使精灵动起来,以及如何使用贴图和图片。本章还会介绍一些常用的2D 数学运算技能。

第7 章,物理学

你将学习如何使用Sprite Kit 中的2D 物理引擎。物理引擎使游戏中的物体能够像在真实世界中一样移动,能使我们以很少的代码实现许多精彩的效果。你将学习如何使用物理体、节点和作用力,以及如何使物理引擎接受用户的输入的控制。

第8 章,Scene Kit

介绍Scene Kit,即苹果新的3D 框架,包括用Scene Kit 显示3D 对象,镜头的使用、纹理以及3D 物理引擎。

第9 章,人工智能和行为

讨论如何使游戏对象更加智能,以及和玩家交互。你将学习如何让对象互相追逐,让对象躲避某些东西,以及在避开障碍物的同时算出两点之间的路径。你还会学到如何通过Core ML 和Vision 检测镜头中看到的对象。

第10 章,使用外设

讨论游戏和外界交互的方法:外加显示器,如电视机和显示器;提供额外输入方式的游戏控制器,如手柄和物理按键;相机等。你会学到当接入外部硬件时如何检测、使用它们,使游戏充分发挥硬件所带来的好处。并学习如何使用ARKit 实现增强现实。

第11 章,性能和调试

本书最后一章介绍如何提升游戏性能和稳定性。你将学习如何使用Xcode 的高级调试功能,如何使用压缩纹理以节省内存,以及如何让游戏加载得更快。

其他资源

本书源代码可在此处下载(或者利用GitHub 的fork 功能进行克隆):http://www.secretlab.com.au/books/ios-game-dev-cookbook-swift。

O’Reilly 还有许多关于游戏开发和软件开发的书(有一般的,也有iOS 的),也许会对iOS 游戏开发人员会有用,例如:

• Physics for Game Developers。

• Learning Cocoa with Objective-C(与本书同一作者)。

• Swift Development with Cocoa(与本书同一作者)。

• Programming iOS 8。

我们强烈建议你将Gamasutra(http://gamasutra.com/)加到你的常用阅读列表中去,因为它涵盖了许多高质量的游戏行业动态。

游戏设计师Marc LeBlanc 的个人网站(http://8kindsoffun.com/),站长搜集了许多演讲、笔记和短文。我们发现这是一个充满创意的地方。

最后不得不提到我们自己的博客(http://secretlab.com.au/)。

本书的排版约定

本书使用如下的排版约定:

斜体(Italic)

表示新出现的术语、URL、email 地址、文件名及扩展名。

等宽字体(Constant width)

表示程序片段,以及书中出现的□量、函数名、数据库、数据类型、环境□量、

语句和关键字等。

加粗等宽字体(Constant width bold)

表示应该由用户输入的命令或其他文本。

等宽斜体(Constant width italic)

表示应该由用户输入的值或根据上下文确定的值替换的文本。

使用示例代码

本书附加的材料(示例代码、练习等)在此处下载:http://www.secretlab.com.au/books/ios-game-dev-cookbook-swift。

本书的最终目的是为了帮助大家完成自己的工作。因此,本书中所有示例代码你都可以在自己的程序和文档中引用。使用这些代码,并不需要经过作者的授权,但如果大量复制本书代码则另当别论。例如,仅从本书中复制几段代码用在自己的程序中无需经过授权,但将O’Reilly 书籍中的示例程序用于出售或复制成光盘则需要授权。回答他人问题时,引用本书内容或示例代码也无需授权。但如果是将本书大量示例代码放入你的产品文档中,则需经过授权。

如果你在代码中保留我们的版权声明,我们会十分感激,但这并不是必须的。完整的版权声明应该包含书名、作者、出版社以及ISBN。例如:“iOS Swift Game Development Cookbook by Jonathon Manning and Paris Buttfield-Addison (O’Reilly).Copyright 2015 Secret Lab, 978-1-449-92080-0”。

如果使用代码时,超出了上述声明中的许可范围,请随时联系我们:permissions@oreilly.com。

O’Reilly Safari

Safari(以前是Safari Books Online)是一个面向企业、政府、教育工作者和个人的会员制培训和参考平台。

会员可访问来自250 多家出版商的数千本书籍、培训视频、学习路径、互动教程和精选播放列表,包括O’Reilly Media,Harvard Business Review,Prentice Hall Professional,Addison-Wesley Professional,Microsoft Press,Sams,Que,Peachpit Press,Adobe,Focal Press,Cisco Press,John Wiley & Sons,Syngress,Morgan Kaufmann,IBM Redbooks,Packt,Adobe Press,FT Press,Apress,Manning,New Riders,McGraw-Hill,Jones & Bartlett 和Course Technology 等。

更多信息,请访问 http://oreilly.com/safari。

如何联系我们

任何有关本书的意见或疑问,请按照以下地址联系出版社。

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)

奥莱利技术咨询(北京)有限公司

本书有一个专门的网页,在上面列出了本书的勘误表、示例及其他附加信息。网址是:http://bit.ly/ios_game_dev_cookbook_swift。

对于本书的□□和技术性问题,请发送电子邮件到:bookquestions@oreilly.com。

要了解更多 O’Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:

http://www.oreilly.com。

我们的Facebook:http://facebook.com/oreilly。

我们的Twitter:http://twitter.com/oreillymedia。

我们的YouTube:http://www.youtube.com/oreillymedia。

致谢

Jon 在此感谢他的父母和他的大家庭,感谢他们的大力支持。

Paris 在此感谢他的母亲。不是因为母亲,他就不会做自己感兴趣的事情,更不用说写书了。

感谢本书编辑Rachel Roumeliotis,是她的技巧和忠告使本书得以完成。此外,作者在编写本书的过程中接触过的所有O’Reilly 人员都是他们领域中的佼佼者。

非常感谢Tony Gray 和 AUC,他们给予我们和这里列举的其他人极大的支持。如果不是Tony 和AUC 社区,我们不会有机会进入这个行业工作,更别说写这本书了。抱歉,Tony,现在你也在写书了。

感谢Neal Goldstein,所有功劳和过失都给他,是他驱使我们进入了一种疯狂的写作状态。

还要感谢Maclab 的那帮家伙[ 忘记了他们的名字,他们始终坚持观战到Admiral Dolphin 团队获得胜利的那一刻(Admiral Dolphin 团队曾获得GovHack 2013 的“Bestuse of data.gov.au”奖,两个作者都是该团队的成员)],以及Christopher Lueg 教授、Leonie Ellis 博士以及塔斯马尼亚大学的所有人。在此向Mark Pesce 道歉,原因他懂的。

因为种种原因,还感谢 Mars G.、Tim N.、Dave J.、Rex S.、Nic W.、Andrew B.、Jess L.、Alec H.、Scott B、Bethany H.、Adam S. 以及Rebekah S.。特别要感谢苹果公司辛勤工作的工程师、作家、艺术家和其他员工,没有他们,这本书(以及许多其他的同类书)都不会存在。

最后,非常感谢你购买了我们的书,非常感谢!如果有任何反馈,请告诉我们。你可以给lab@secretlab.com 发邮件,或者在Twitter 联系我们@thesecretlab。


目录

目录

前言 .1

第1 章 游戏的设计 9

1.1 设计游戏引擎 .9

1.2 创建基于继承的设计 10

1.3 创建基于组件的设计 12

1.4 用 Game□□□yKit 创建基于组件的游戏设计 16

1.5 计算屏幕的帧刷新时间 18

1.6 进入和退出游戏 .19

1.7 用定时器进行游戏的刷新 22

1.8 每帧刷新 .23

1.9 游戏暂停 .24

1.10 记录游戏时间 25

1.11 使用闭包 26

1.12 在方法中回调闭包 29

1.13 使用 Operation Queues .30

1.14 延迟执行 32

1.15 串行执行 33

1.16 通过闭包进行数组的过滤 34

1.17 加载游戏资源 35

1.18 在游戏中使用单元测试 36

.19 二维网格 39

1.20 使用随机数 .40

1.21 编写状态机 .42

第2 章 视图和菜单 . 46

2.1 使用故事板 47

2.2 创建视图控制器 .53

2.3 通过Segue 导航到不同屏幕 60

2.4 使用布□约束进行布□ 65

2.5 导入图片到项目 68

2.6 切割按钮的背景图片 70

2.7 用UIDynamics 创建动画视图 71

2.8 用Core Animation 移动图片.74

2.9 旋转图片 75

2.10 实现视图的弹起效果 77

2.11 用UIAppearance 主题化UI 样式 79

2.12 对UIView 进行3D 旋转 .80

2.13 在游戏内容之上显示菜单 83

2.14 创建高效的游戏菜单 84

第3 章 输入 . 86

3.1 侦测触摸 87

3.2 处理轻触手势 .88

3.3 在屏幕上拖动图片 .90

3.4 识别旋转手势 .92

3.5 识别捏合手势 94

3.6 自定义手势 96

3.7 在视图的指定区域识别触摸 .100

3.8 识别摇晃手势 101

3.9 识别设备倾斜手势 .102

3.10 获得指北针方向 106

3.11 获得用户的位置 108

3.12 计算运动速度  112

3.13 计算用户与目标的距离  113

3.14 当用户进入或离开某个位置时获得通知 . 114

3.15 通过地名获得坐标  118

3.16 通过坐标获得地名  119

3.17 将设备当作方向盘 121

3.18 测量磁场 122

3.19 利用输入改善游戏设计 124

第4 章 声音  126

4.1 用 AVAudioPlayer 播放声音 .126

4.2 用AVAudioRecorder 进行录音 .130

4.3 使用多个AVAudioPlayer .131

4.4 两个声音间的淡入淡出 133

4.5 合成语音 .136

4.6 获知音乐程序当前播放曲目 137

4.7 当前曲目何时改□ .140

4.8 音乐回放控制 141

4.9 让用户选择音乐 142

4.10 当其他App 正在播放音乐时的操作 145

4.11 在游戏中使用哪种声音播放模式最好 147

第5 章 存储数据  148

5.1 保存游戏状态 148

5.2 在本地保存游戏得分 .150

5.3 用 iCloud 保存游戏进度 .151

5.4 使用iCloud 的键– 值存储 .157

5.5 何时使用文件,何时使用数据库 159

5.6 管理资源集 160

5.7 用NSUserDefaults 存放数据 .162

5.8 最佳数据存储策略 .164

5.9 游戏中的财富值 .165

5.10 保存到CloudKit 166

5.11 向CloudKit 数据库中添加记录 .168

5.12 查询CloudKit 数据库中的记录 .169

5.13 从CloudKit 数据库中删除记录 .173

第6 章 2D 图形和Sprite Kit  175

6.1 熟悉二维数学 176

6.2 创建Sprite Kit 视图 183

6.3 创建场景 .184

6.4 加入精灵 187

6.5 文本精灵 .188

6.6 获取有效字体 190

6.7 使用自定义字体 .191

6.8 场景切换 191

6.9 移动精灵和标签 194

6.10 纹理贴图精灵 197

6.11 纹理图集 197

6.12 形状节点 198

6.13 混合模式 200

6.14 对精灵使用滤镜 .201

6.15 贝塞尔曲线 202

6.16 烟雾、火焰和粒子特效 204

6.17 抖动屏幕 205

6.18 动画精灵 207

6.19 视差滚动 208

6.20 噪声图 215

第7 章 物理学  217

7.1 物理学术语和定义 .217

7.2 为精灵添加物理特性 .219

7.3 静止物体和运动物体 .220

7.4 定义碰撞体的形状 .221

7.5 速度 224

7.6 质量、大小和密度 .224

7.7 创建墙壁 .226

7.8 设置重力 .227

7.9 让物体无法旋转 .229

7.10 改□物理模拟世界的时钟 .229

7.11 碰撞检测 230

7.12 查找物体 231

7.13 连接 233

7.14 作用力 235

7.15 在物体上添加推进器 .236

7.16 制造爆炸 237

7.17 根据设备方向改□重力 239

7.18 拖动物体 241

7.19 创建车辆 243

第8 章 Scene Kit . 246

8.1 使用Scene Kit .246

8.2 创建一个Scene Kit 场景 247

8.3 显示3D 对象 248

8.4 Scene Kit 的镜头 248

8.5 创建灯光 .249

8.6 移动 251

8.7 使用文本节点 252

8.8 自定义材质 252

8.9 纹理对象 .254

8.10 法向贴图 254

8.11 约束对象 255

8.12 加载3D 模型文件 256

8.13 3D 物理学 257

8.14 反射 258

8.15 点击测试 259

8.16 加载场景文件 .260

8.17 粒子系统 260

8.18 Metal 261

第9 章 人工智能和行为  263

9.1 Swift 使向量计算更轻松263

9.2 让对象朝某个点移动 266

9.3 跟随路径 .268

9.4 □□运动物体 269

9.5 逃逸 270

9.6 目标选择问题 271

9.7 转向问题 272

9.8 隐蔽点问题 273

9.9 路径算法 274

9.10 网格中的路径查找 279

9.11 计算下一步问题 280

9.12 判断对象能否“看见”其他对象 281

9.13 用NSLinguisticTagger 作词性标注 .283

9.14 用 AVFoundation 框架访问相机 285

9.15 导入 Core ML 模型 288

9.16 识别图片中的物体 289

9.17 用人工智能增强游戏设计 293

第10 章 使用外设  294

10.1 检测控制器 .296

10.2 从游戏控制器中获得输入 298

10.3 通过AirPlay 显示游戏内容 .300

10.4 使用扩展屏幕 301

10.5 为不同的屏幕适配UI 303

10.6 拖放 307

10.7 用 UIFeedbackGenerator 实现触觉回馈 .313

10.8 用Re□□□yKit 记录屏幕 315

10.9 用ARKit 显示AR 画面 .318

10.10 AR 场景的点击测试 322

10.11 用 TestFight 测试 APP 325

10.12 用Fastlane 构建和发布APP .326

第11 章 性能和调试  327

11.1 改善帧刷新率 .327

11.2 快速加载关卡 .330

11.3 解决内存不足问题 331

11.4 查找崩溃原因 .333

11.5 使用纹理压缩 .334

11.6 使用watchpoint .338

11.7 记录日志 339

11.8 创建语音断点 .340


作者简介

 

Jonathon Manning是一位游戏设计师及程序员,他曾经参与过多个项目,从一个关于猫的视频游戏(获得过BAFTA的奖项)到实时通信软件客户端。他的 Twitter是@desplesda。

Paris Buttfield-Addison是一位移动应用工程师、游戏设计师和热衷于让技术尽可能简单和吸引人的学者。他的Twitter是@parisba。

Jon和Paris是Secret Lab的联合创始人,Secret Lab是位于澳大利亚塔斯马尼亚的一家独立游戏工作室。


精彩书评

“对于每一个想编写出优秀iOS游戏的开发者来说,本书是一个宝贵的资源,它涵盖了从游戏引擎的设计原理到iOS的实现细节。”

——Jonathan Adamczewski,

Insomniac 游戏公司首席引擎程序员



相关推荐