iOS Swift游戏开发经典实例(第2版)
Jonathon Manning, Paris Buttfield-Addison
杨宏焱 译
出版时间:2016年09月
页数:353
想创建精彩的iPhone、iPad和iPod touch游戏吗?使用苹果公司专有的编程语言Swift,这是再容易不过的事情了。这本升级版的经典案例针对各种iOS游戏开发中的常见问题,提出了详细的解决方案:从各种2D/3D数学到Sprite Kit,从OpenGL到游戏的性能,全都为Swift而准备。
你可以从这里获得各种iOS游戏编程中常见问题的简单、直接的解决方案。想知道如何使对象模拟物理学运动,或者如何处理与游戏有关的数学计算吗?本书提供了最直接的答案和示例代码。你仅仅需要具备一定iOS开发、Swift或OC语言基础即可。

● 游戏架构设计和代码结构。
● 用UIKit创建和定制菜单。
● 检测和响应用户输入。
● 播放音效和音乐。
● 存储数据。
● 用Sprite Kit绘制2D图形。
● 用Scenen Kit绘制3D图形。
● 加入2D物理模拟。
● 3D图形入门、进阶和高级。
● 人工智能。
● 游戏控制器和外接显示。

“本书涵盖了从游戏引擎设计原则到iOS工程实践的细节,对于每个想开发出优秀iOS游戏的开发者来说,都是无价之宝。”
——Jonathan Adamczewski
游戏引擎程序员,
Insomniac游戏公司
  1. 前言
  2. 第1章 游戏的设计
  3. 1.1 设计游戏引擎
  4. 1.2 创建基于继承的设计
  5. 1.3 创建基于组件的设计
  6. 1.4 计算屏幕的帧刷新时间
  7. 1.5 进入和退出游戏
  8. 1.6 用定时器进行游戏的刷新
  9. 1.7 每帧刷新
  10. 1.8 游戏暂停
  11. 1.9 记录游戏时间
  12. 1.10 使用闭包
  13. 1.11 在方法中回调闭包
  14. 1.12 使用Operation Queues
  15. 1.13 延迟执行
  16. 1.14 串行执行
  17. 1.15 通过闭包进行数组的过滤
  18. 1.16 加载游戏资源
  19. 1.17 在游戏中使用单元测试
  20. 1.18 二维表格
  21. 第2章 视图和菜单
  22. 2.1 使用故事板
  23. 2.2 创建视图控制器
  24. 2.3 通过Segue导航到不同屏幕
  25. 2.4 使用布局约束进行布局
  26. 2.5 将图片导入到项目中
  27. 2.6 切割按钮的背景图片
  28. 2.7 用UIDynamics创建运动视图
  29. 2.8 用Core Animation移动图片
  30. 2.9 旋转图片
  31. 2.10 在视图上实现弹起效果
  32. 2.11 用UIAppearance定制UI元素
  33. 2.12 对UIView进行3D旋转
  34. 2.13 将游戏菜单覆盖在游戏内容之上
  35. 2.14 创建高效的游戏菜单
  36. 第3章 输入
  37. 3.1 侦测触摸
  38. 3.2 处理轻触手势
  39. 3.3 在屏幕上拖动图片
  40. 3.4 识别旋转手势
  41. 3.5 识别捏合手势
  42. 3.6 自定义手势
  43. 3.7 在视图的指定区域识别触摸
  44. 3.8 识别摇晃手势
  45. 3.9 识别设备倾斜手势
  46. 3.10 获得罗盘方向
  47. 3.11 获得用户的位置
  48. 3.12 计算运动速度
  49. 3.13 计算用户与目标的距离
  50. 3.14 当用户进入或离开某个位置时获得通知
  51. 3.15 通过地名获得坐标
  52. 3.16 通过坐标获得地名
  53. 3.17 将设备当作方向盘
  54. 3.18 测量磁场
  55. 3.19 利用输入改善游戏设计
  56. 第4章 声音
  57. 4.1 用AVAudioPlayer播放声音
  58. 4.2 用AVAudioRecorder进行录音
  59. 4.3 使用多个AVAudioPlayer
  60. 4.4 两个声音间的淡入淡出
  61. 4.5 合成语音
  62. 4.6 获知音乐程序当前播放曲目
  63. 4.7 当前曲目何时改变
  64. 4.8 音乐回放控制
  65. 4.9 让用户选择音乐
  66. 4.10 当其他App正在播放音乐时怎么办?
  67. 4.11 在游戏中使用哪一种播放模式最好
  68. 第5章 存储数据
  69. 5.1 保存游戏状态
  70. 5.2 在本地保存游戏得分
  71. 5.3 用iCloud保存游戏进度
  72. 5.4 使用iCloud的键-值存储
  73. 5.5 加载结构化数据
  74. 5.6 什么时候使用文件,什么时候使用数据库
  75. 5.7 管理资源集合
  76. 5.8 用NSUserDefaults存放数据
  77. 5.9 最佳数据存储策略
  78. 5.10 游戏中的财富值
  79. 第6章 2D图形和Sprite Kit
  80. 6.1 熟悉二维数学
  81. 6.2 创建Sprite Kit视图
  82. 6.3 创建场景
  83. 6.4 加入精灵
  84. 6.5 文本精灵
  85. 6.6 获取有效字体
  86. 6.7 使用自定义字体
  87. 6.8 场景切换
  88. 6.9 移动精灵和标签
  89. 6.10 纹理贴图精灵
  90. 6.11 纹理图集
  91. 6.12 形状节点
  92. 6.13 混合模式
  93. 6.14 对精灵使用滤镜
  94. 6.15 贝塞尔曲线
  95. 6.16 烟雾、火焰和粒子特效
  96. 6.17 抖动屏幕
  97. 6.18 动画精灵
  98. 6.19 视差滚动
  99. 6.20 杂点图
  100. 第7章 物理引擎
  101. 7.1 物理引擎的相关术语和定义
  102. 7.2 在精灵中添加物理引擎
  103. 7.3 静止物体和运动物体
  104. 7.4 碰撞体形状
  105. 7.5 速度
  106. 7.6 质量、大小和密度
  107. 7.7 墙壁
  108. 7.8 设置重力
  109. 7.9 让物体无法旋转
  110. 7.10 改变物理模拟时钟的速度
  111. 7.11 碰撞检测
  112. 7.12 查找物体
  113. 7.13 连接
  114. 7.14 作用力
  115. 7.15 在物体上添加推进器
  116. 7.16 制造爆炸
  117. 7.17 根据设备方向改变重力
  118. 7.18 拖动物体
  119. 7.19 车辆
  120. 第8章 3D图形
  121. 8.1 使用3D数学
  122. 8.2 创建GLKit上下文
  123. 8.3 用OpenGL绘制四边形
  124. 8.4 贴图
  125. 8.5 绘制立方体
  126. 8.6 旋转立方体
  127. 8.7 在三维空间中移动镜头
  128. 第9章 3D图形进阶
  129. 9.1 加载网格
  130. 9.2 父子对象
  131. 9.3 网格动画
  132. 9.4 批量绘制
  133. 9.5 创建可移动的镜头
  134. 第10章 高级3D图形
  135. 10.1 着色器
  136. 10.2 材质
  137. 10.3 用着色器进行贴图
  138. 10.4 给场景打上灯光
  139. 10.5 法向贴图
  140. 10.6 透明对象
  141. 10.7 添加镜面高光
  142. 10.8 卡通着色
  143. 第11章 Scene Kit
  144. 11.1 使用Scene Kit
  145. 11.2 创建一个Scene Kit场景
  146. 11.3 显示3D对象
  147. 11.4 在Scene Kit中使用镜头
  148. 11.5 创建灯光
  149. 11.6 动画
  150. 11.7 使用文本节点
  151. 11.8 自定义材质
  152. 11.9 纹理对象
  153. 11.10 法向贴图
  154. 11.11 约束对象
  155. 11.12 加载3D模型文件
  156. 11.13 3D物理学
  157. 11.14 加入地板
  158. 11.15 点击测试
  159. 第12章 人工智能和行为
  160. 12.1 使用向量数学
  161. 12.2 让对象朝某个点移动
  162. 12.3 跟随路径
  163. 12.4 拦截运动物体
  164. 12.5 逃逸
  165. 12.6 目标选择问题
  166. 12.7 转向问题
  167. 12.8 隐蔽点问题
  168. 12.9 路径问题
  169. 12.10 计算下一步问题
  170. 12.11 判断对象能否“看见”其他对象
  171. 12.12 用人工智能增强游戏设计
  172. 第13章 网络及社交媒体
  173. 13.1 游戏中心
  174. 13.2 获取用户登录信息
  175. 13.3 获取别的玩家信息
  176. 13.4 创建排行榜和向好友挑战
  177. 13.5 和其他玩家一起玩游戏
  178. 13.6 创建、 销毁、 同步网络对象
  179. 13.7 对象状态插值
  180. 13.8 玩家断开和重连
  181. 13.9 用Game Kit制作回合制游戏
  182. 13.10 将文字和图片分享到社交网络
  183. 13.11 将游戏保存到游戏中心
  184. 13.12 充分利用iOS网络
  185. 13.13 充分利用社交网络
  186. 第14章 游戏控制器和外接屏幕
  187. 14.1 检测控制器
  188. 14.2 从游戏控制器中获得输入
  189. 14.3 通过AirPlay显示游戏内容
  190. 14.4 使用扩展屏幕
  191. 14.5 如何为不同的屏幕设计UI
  192. 14.6 拖放
  193. 第15章 性能和调试
  194. 15.1 改善帧刷新率
  195. 15.2 快速加载关卡
  196. 15.3 解决内存不足问题
  197. 15.4 查找崩溃原因
  198. 15.5 使用纹理压缩
  199. 15.6 使用监视点
  200. 15.7 记录日志
  201. 15.8 创建语音断点
书名:iOS Swift游戏开发经典实例(第2版)
译者:杨宏焱 译
国内出版社:中国电力出版社
出版时间:2016年09月
页数:353
书号:978-7-5123-9399-8
原版书书名:iOS Swift Game Development Cookbook, 2nd Edition
原版书出版商:O'Reilly Media
Jonathon Manning
 
Jon Manning是Secret Lab(分布在澳洲的霍巴特、塔斯马尼亚的一个独立的游戏开发工作室)的创立者之一。他从事于各类应用,从儿童的iPad游戏到即时通信客户端。他精通Core Animation,并且经常在充满了渴望学习的iOS开发者的班级里激情地讲课。Jon是Horse_ebooks(https://twitters.com/Horse_ebooks)的超级粉丝,在Twitter上@desplesda可以找到他。

Jonathon Manning是Secret Lab的联合创始人之一。Secret Lab是一个独立的游戏工作室,位于澳大利亚塔斯马尼亚风景秀丽的霍巴特(一个位于南半球底部的小岛)。他致力于开发各种 App,从iPad儿童益智游戏到即时消息软件的客户端。Jon即将获得计算机博士学位,他的 Twitter是@desplesda。
 
 
Paris Buttfield-Addison
 
Paris Buttfield-Addison是Secret Lab的另一个创立者,他负责经营他们的工作室。Paris同样从事着各类应用,从非常流行的iPad烹饪应用到家庭自动化工具。在很早以前,他就成为了一个OS X开发者,并且对澳洲的税法有很深的研究。你可以通过@parisba在Twitter上找到他。访问Secret Lab,可以通过http://www.secretlab.com.au或者在Twitter上@thesecretlab。

Paris Buttfield-Addison也是Secret Lab的联合创始人之一。Secret Lab 制作的手游和App 曾获得不错的口碑。Paris之前还曾担任过Meebo(请查询Google)的移动产品经理,他已经获得了计算机博士学位。他的Twitter是@parisba。
 
 
本书的封面是一只女王鲀(美丽女王鳞鲀),当它遇到危险时,它会躲藏到礁石缝隙中竖起鳞次栉比的棘刺,这些棘刺会将它牢牢锁定在礁石缝隙中,使其他捕食动物无法将其一口吞下,并因此而得名。女王鲀生活在大西洋浅水下10~100英尺的珊瑚丛和岛礁中,但人们也曾在900英尺下被泥沙海草覆盖的海底发现过它们的踪影。
虽然在学校中时常见到女王鲀,女王鲀仍然在攻击性鱼类中占有一席之地。它们将卵产在大洋底部的巢穴中,在保护这些卵时它们会具有强烈的攻击性。它们拥有强壮的下颚和牙齿,主要以甲壳动物和其他无脊椎动物为食。女王鲀会通过剧烈运动鱼鳍驱动水流冲击海底来筑穴。它还能用这种方式来将海胆上部尖尖的长脊推开,暴露出它肉质细嫩的腹部。
女王鲀喜食无脊椎动物的这种特性,使得它不能接受珊瑚礁水族馆之外的饲养环境。此外,理想的水体容积不能少于500加仑,否则女王鲀将攻击其他鱼类。也可以通过放置一些珊瑚将水族馆重新进行布置,将鱼儿们迁移到其他地方。
女王鲀的情绪并不总是攻击性的。它的颜色会随心情的改变而变化,这些颜色基本上是混合了蓝色和绿色的各种浓淡不同的黄色。当它受到威胁时,这变色的技能有利于将它融入到环境色中。
O’Reilly出版物封面中出现的各种动物都是濒危动物,它们都是这个世界的重要组成部分。要了解如何帮助这些濒危动物,请访问animals.oreilly.com。