当前位置:主页 > 书籍配套资源 > 游戏开发配套资源
《iOS和tvOS 2D游戏开发教程》配套资源

《iOS和tvOS 2D游戏开发教程》配套资源

  • 更新:2022-04-29
  • 大小:746.53 MB
  • 类别:游戏开发
  • 作者::美国raywenderlich.com
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

本书是作者团队精心为初学者打造的iOS和tvOS 2D游戏的开发教程。本书按照“从开发游戏中学习,从挑战实践中学习”的原则,通过游戏开发的实际案例来进行讲解,借助挑战实践让读者运用所学的知识。同时,本书关注游戏设计理念、实现,尤其是游戏开发中的打磨等整体过程,帮助读者掌握从游戏思路、代码实现,到后期优化,tvOS移植甚至App Store上线后的完整工作环节。

本书内容详尽、生动有趣,适合对iOS和tvOS上的游戏开发感兴趣的初学者阅读参考。

本书配套代码和素材可以从www.epubit.com.cn下载。

阅读本书,跟随作者一起开发以下几款不同类型的、精彩的iOS 2D游戏:

■ 僵尸游戏Zombie Conga——跳着康茄舞的僵尸,要咬住旁边的小猫,让它们加入康茄舞的队列;猫女士则用她的雨
伞对抗僵尸,抢救小猫。
■ 谜题游戏Cat Nap——困倦的小猫想要上床睡觉,必须想方设法破坏掉木头块,而且要正好落在床上而不是地上。
■ 平台跳跃游戏Drop Charge——太空英雄肩负摧毁外星人的飞船的使命,并且要在爆炸之前逃生,从一个平台跳到另
一个平台,一路上可以收集金币,但是小心不要被火热的岩浆吞噬掉。
■ 塔防攻击游戏Dino Defense——成群的恐龙要攻击玩家的村庄,玩家必须在地图上放置炮塔,向恐龙发射石头或木头
炮弹,以阻止敌人靠近他们的家园。
■ 地牢探险游戏Delve——矿工需要在耗尽生命值之前逃出地牢,而大群的黑暗神秘石人则试图阻止他逃走。
■ 赛车游戏Circuit Racer——赛车手驾驶着赛车绕赛道完成跑圈,可以选择容易、中等和困难等不同难度级别的赛道,但不要撞击围栏超过规定的次数。

内容简介

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 SpriteKit游戏循环 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 SpriteKit游戏循环第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 给ZombieConga添加一个标签 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 ObjectLibrary 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 SpriteKit中的物理引擎 122
  • 物理实体 123
  • 9.2 开始 124
  • 9.3 第一个Playground 126
  • 9.4 创建一个SpriteKitPlayground 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 SpirtKit游戏循环第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 SpriteKit游戏循环,第4轮 181
  • 11.8 限制概览 182
  • 11.8.1 实现绳子的限制 183
  • 11.8.2 更多限制 184
  • 11.9 动态地创建和删除接合 184
  • 11.10 组合形状 187
  • 11.10.1 设计关卡3188
  • 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 AppleTV遥控,第2轮 220
  • 13.3.1 TV控制第1部分:谁应该采取行动 220
  • 13.3.2 TV控制第2部分:停留在循环中 222
  • 13.3.3 和AppleTV模拟器交互 225
  • 13.3.4 TV控制第3部分:点击所有内容 226
  • 13.4 挑战 227
  • 挑战1:打磨Apple TV上的所有关卡 227
  • 第三部分 果汁
  • 第14章 开发DropCharge 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 使用CoreMotion来控制玩家 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
  • 第五部分 高级话题
  • 第21章 贴图地图游戏 366
  • 第22章 随机性 393
  • 第23章 程序式关卡 412
  • 第24章 游戏控制器 433
  • 第六部分 额外章节
  • 第25章 GameCenter成就 452
  • 第26章 GameCenter排行榜 470
  • 第27章 ReplayKit 481
  • 第28章 iAd 498
  • 第29章 写给程序员的2D美工知识 508

资源下载

资源下载地址1:https://box.lenovo.com/l/31LCM8

相关资源

网友留言