具体描述
《iPhone游戏开发实践指南》通过一个实例介绍了在iPhone上创建游戏的完整过程,全面涵盖从最初的游戏设计到最终将游戏上传至App Store的整个过程。全书共分16章,每一章都详细介绍了该游戏的一个特定组件及支持该组件的技术,包括最初的游戏设计思路、之前的准备工作、游戏循环、图像渲染、精灵表、动画、点阵字、贴图地图、粒子发射器、声音、用户输入、游戏界面、游戏对象和实体、碰撞检测,以及如何对游戏进行测试等。
《iPhone游戏开发实践指南》适合iPhone游戏开发人员阅读。
作者简介
白天,Micheal Daley在为世界上最大的商业软件公司工作,该公司的主要顾客为大型企业。晚上,Micheal学习如何为iPhone手机构建游戏。Micheal最开始用BASIC在Sinclair Spectrum 48KB上编写历险游戏,后来进一步发展到在Commodore 64和Amiga A500上写游戏。他从未停止对游戏编程的热爱,自iPhone问世后,Micheal开始学习Objective-C和如何为iPhone创建游戏。
许多年来Micheal为自己的孩子编写了很多游戏,iPhone的发布让他想为更多的人编写游戏,而不仅仅是为自己的孩子。对于学习并应用新的技术,Micheal很有热情。同时他也是个Apple粉丝,在最新的Apple设备上投入了大量时间和金钱。
目录信息
译者序
前言
第1章 游戏设计1
1.1 游戏的开始2
1.2 主导思想3
1.2.1 适合iPhone的游戏3
1.2.2 故事情节4
1.2.3 名字的内涵4
1.2.4 游戏的目标5
1.3 游戏的元素5
1.3.1 时间6
1.3.2 生命6
1.3.3 健康值6
1.3.4 物品7
1.3.5 羊皮碎片7
1.3.6 门8
1.3.7 武器8
1.3.8 实体8
1.3.9 玩家9
1.4 小结9
第2章 术语、技术和工具10
2.1 术语10
2.1.1 精灵11
2.1.2 精灵表12
2.1.3 动画14
2.1.4 点阵字15
2.1.5 贴图地图16
2.1.6 粒子系统16
2.2 碰撞检测18
2.2.1 人工智能18
2.2.2 游戏循环19
2.3 技术21
2.3.1 Objective-C21
2.3.2 Cocoa Touch21
2.3.3 OpenGL ES22
2.3.4 OpenAL24
2.4 工具25
2.5 小结30
第3章 开始探索旅程32
3.1 在Xcode中创建项目32
3.2 程序的运行34
3.3 准备就绪34
3.4 程序代理35
3.4.1 查看头文件36
3.4.2 查看实现文件37
3.5 EAGLView40
3.5.1 EAGLView.h40
3.5.2 EAGLView.m41
3.6 ES1Renderer48
3.6.1 审查ES1Renderer.h48
3.6.2 查看ES1Renderer.m49
3.6.3 创建帧缓冲区和渲染缓冲区50
3.6.4 render方法52
3.6.5 定义颜色值54
3.6.6 定位55
3.7 OpenGL的工作原理56
3.7.1 对模型应用变换56
3.7.2 在屏幕上渲染57
3.8 小结59
第4章 游戏循环61
4.1 时间控制就是一切61
4.2 冲突检测62
4.3 游戏循环62
4.3.1 基于帧的循环体63
4.3.2 基于时间的固定间隔循环体64
4.4 开始65
4.4.1 EAGLView类的修改65
4.4.2 EAGLView.m文件的修改66
4.4.3 ES1Renderer类68
4.4.4 配置视图端口71
4.5 游戏场景和游戏控制器72
4.5.1 创建游戏控制器72
4.5.2 GameController类72
4.5.3 创建单态类74
4.5.4 GameController.m文件内部74
4.5.5 AbstractScene类76
4.5.6 GameScene类77
4.6 小结79
4.7 练习79
第5章 图像渲染81
5.1 渲染入门81
5.2 四边形的渲染82
5.3 纹理映射84
5.4 交错顶点数组86
5.5 结构体88
5.6 图像渲染类89
5.6.1 Texture2D类89
5.6.2 TextureManager类96
5.6.3 ImageRenderManager类98
5.7 Image类104
5.7.1 初始化105
5.7.2 获取子图像107
5.7.3 复制图像108
5.7.4 渲染图像108
5.7.5 getter和setter111
5.8 小结112
5.9 练习112
第6章 精灵表113
6.1 精灵表简介113
6.1.1 简单精灵表113
6.1.2 复杂精灵表114
6.2 使用Zwoptex116
6.3 SpriteSheet类117
6.3.1 初始化117
6.3.2 提取精灵120
6.4 PackedSpriteSheet类121
6.4.1 初始化121
6.4.2 解析控制文件122
6.4.3 提取精灵123
6.5 小结123
6.6 练习124
第7章 动画125
7.1 动画篇的项目125
7.2 动画简介125
7.2.1 帧126
7.2.2 状态126
7.2.3 类型126
7.2.4 方向126
7.2.5 跳动帧126
7.3 Animation类127
7.3.1 初始化127
7.3.2 添加帧128
7.3.3 更新动画128
7.3.4 渲染动画130
7.3.5 完成131
7.4 小结133
7.5 练习133
第8章 点阵字134
8.1 点阵字项目134
8.2 点阵字简介134
8.3 创建点阵字精灵表135
8.4 BitmapFont类137
8.5 与C语言的关系138
8.5.1 初始化方法138
8.5.2 解析控制文件139
8.6 渲染文本142
8.6.1 渲染合理的文本143
8.6.2 文本宽度和高度145
8.6.3 重新分配146
8.7 小结146
8.8 练习147
第9章 贴图地图148
9.1 贴图地图入门148
9.2 贴图地图简介148
9.3 贴图地图编辑器150
9.3.1 贴图调色板151
9.3.2 图层151
9.4 创建贴图地图152
9.4.1 新建一个贴图集合152
9.4.2 创建地图图层153
9.4.3 创建对象图层154
9.4.4 绘制地图154
9.4.5 放置对象154
9.5 认识Tiled配置文件155
9.5.1 map元素155
9.5.2 tileset元素155
9.5.3 layer元素156
9.5.4 objectgroup元素157
9.6 地图类157
9.6.1 Layer类158
9.6.2 TileSet类162
9.6.3 TiledMap类163
9.6.4 初始化165
9.6.5 解析地图文件166
9.6.6 创建图层图像174
9.6.7 图层渲染175
9.6.8 获取贴图信息177
9.7 小结178
9.8 练习178
第10章 粒子发射器179
10.1 粒子发射项目179
10.1.1 粒子系统简介180
10.1.2 粒子系统参数181
10.2 粒子的生命周期182
10.2.1 粒子的诞生182
10.2.2 粒子生存183
10.2.3 粒子消亡183
10.2.4 粒子重生184
10.3 粒子发射器的配置184
10.4 粒子发射器类185
10.4.1 TBXMLParticleAdditions类185
10.4.2 ParticleEmitter类187
10.5 开始游戏198
10.6 小结199
第11章 声音200
11.1 声音项目200
11.2 iPhone的声音简介200
11.2.1 音频会话200
11.2.2 播放音乐202
11.2.3 播放音效202
11.2.4 创建音效204
11.2.5 立体声与单声道205
11.3 声音管理器类205
11.4 音效管理219
11.4.1 载入音效220
11.4.2 播放音效223
11.4.3 停止播放音效225
11.4.4 设置音效和监听器位置226
11.5 处理声音播放干扰227
11.6 小结228
第12章 用户输入230
12.1 用户输入项目230
12.2 用户输入简介 231
12.3 处理触控事件232
12.3.1 touchesBegan阶段234
12.3.2 touchesMoved阶段235
12.3.3 touchesEnded阶段236
12.4 处理敲击237
12.5 加速器事件238
12.6 小结240
第13章 游戏界面241
13.1 游戏界面项目241
13.2 OpenGL ES界面242
13.2.1 界面渲染242
13.2.2 按钮边界定义245
13.2.3 点击处理245
13.2.4 可视化边界246
13.2.5 转换处理248
13.2.6 OpenGL ES定向249
13.3 UIKit界面251
13.3.1 创建界面252
13.3.2 界面连接254
13.3.3 UIKit定向257
13.3.4 显示或隐藏UIKit界面259
13.4 小结261
第14章 游戏对象和实体262
14.1 游戏对象和实体项目262
14.2 游戏对象263
14.2.1 AbstractObject类263
14.2.2 EnergyObject类265
14.3 游戏实体272
14.3.1 AbstractEntity类273
14.3.2 人工智能275
14.3.3 Player实体类276
14.4 保存游戏对象或实体284
14.5 小结286
第15章 碰撞检测287
15.1 碰撞检测简介287
15.2 基于帧与基于时间289
15.3 轴对齐边界框289
15.4 检测碰撞290
15.5 碰撞地图291
15.6 实体与地图间的碰撞检测293
15.7 实体与实体间的碰撞检测294
15.8 小结296
第16章 组装起来297
16.1 摄像机297
16.2 保存游戏状态和设置299
16.2.1 保存游戏状态299
16.2.2 载入游戏状态300
16.2.3 保存游戏设置302
16.2.4 载入游戏设置303
16.3 保存高分304
16.3.1 添加分数306
16.3.2 保存高分307
16.3.3 载入高分307
16.4 性能和测试308
16.4.1 使用仪表309
16.4.2 Leaks仪表310
16.4.3 使用OpenGL ES仪表312
16.4.4 用Thumb编译314
16.5 β测试314
16.5.1 多种设备类型315
16.5.2 反馈316
16.6 小结316
· · · · · · (收起)
读后感
用户评价
坦白说,我对市面上那些动辄几百页、堆砌着晦涩难懂概念的“宝典”早就心生倦怠了。这本书的独特之处在于它的“轻量级实战”导向。它并没有试图涵盖iOS开发的每一个角落,而是精准地抓住了核心技能点,并围绕这些点构建了一系列紧凑、可操作的项目。我尤其欣赏作者对“设计模式”的引入方式,它不是空泛地罗列理论,而是直接嵌入到具体的代码模块重构中,让你在解决实际问题的过程中自然而然地领悟其精髓。这种“做中学”的方法论,极大地缩短了从理论到实践的转化周期。唯一的遗憾是,书中对Swift语言新特性的跟进速度略显保守,对于那些追求最新语法特性的资深开发者来说,可能需要额外查阅最新的官方文档来补充知识体系。但对于我这个需要稳扎稳打打好基础的从业者而言,这种稳健的风格反而更令人安心。
说实话,我一开始对这本书的期望值并不高,毕竟市场上充斥着太多肤浅的“入门速成”读物。然而,这本书带给我的最大惊喜是它对“调试和错误处理”的重视程度。很多教材只教你如何写出“能跑”的代码,却避而不谈代码在真实世界中出错时的应对策略。这本书却用了整整一个章节来深入探讨如何高效地使用Instruments工具进行内存泄漏分析和性能瓶颈定位。作者通过几个经典的“陷阱”案例,生动地展示了如何在复杂场景下快速定位问题根源,这种实战性的调试技巧,其价值远超书本上任何一条语法规则。我感觉自己像是突然拥有了一副“X光眼镜”,能够看穿代码运行时隐藏的各种小毛病。对于那些已经能写出基础App,但总觉得App不够稳定、不够专业的开发者来说,这本书后半部分的调试精髓,绝对是值得反复研读的“内功心法”。
这本书的排版和视觉呈现堪称一绝,这在技术书籍中是相当少见的。厚重感被巧妙地分散了,每一章的知识点划分都非常精细,颜色和字体搭配得恰到好处,长时间阅读下来眼睛也不会感到疲劳。更重要的是,作者对于“代码示例”的处理方式非常人性化。每一个代码块都不是那种孤立的片段,而是配有详细的上下文解释,清晰地标注了每一行的目的和效果。这对于理解那些复杂的闭包或者异步操作尤其关键。我记得有一次我被一个多线程的死锁问题困扰了整整一个下午,最后是翻到书中的那个特定章节,才恍然大悟——原来作者在那个不起眼的角落里,已经埋下了解决问题的关键线索。它更像是一本精心编辑的“思维导图”,将原本杂乱无章的技术点梳理得井井有条,让人在知识的海洋里航行时,总能找到可靠的航标。
作为一名已经有多年移动开发经验,但主要集中在Android生态的技术人员,我购买这本书的初衷是想快速了解iOS的“原生思维”。这本书没有让我失望,它提供的视角非常独特。它没有花费大量篇幅去重复教授编程语言的基础语法(这一点对于有经验的开发者来说是浪费时间),而是迅速切入到iOS特有的生命周期管理、内存模型(ARC)以及数据持久化的几种主流方式的优缺点对比上。作者在对比不同技术选型时的客观和深入的分析,让我对苹果生态的底层逻辑有了更深层次的理解,特别是关于View Controller的职责划分,提供了一个非常成熟且实用的架构建议。如果说有什么地方让我觉得略微遗憾,那就是关于Metal或者ARKit这类前沿图形API的探讨略显简略,但我理解在有限的篇幅内做取舍是必要的。这本书成功地搭建起了一座从通用编程知识到iOS特定领域知识的坚实桥梁。
这本书简直是为我这种初入iOS开发领域的新手量身定做的!我之前对编程一窍不通,光是看着那些复杂的代码和各种框架就头大。但拿起这本书后,那种高深莫测的感觉一下子就烟消云散了。作者的文笔非常平实,没有那种高高在上的技术腔调,而是像一位耐心十足的导师,一步一步地把我领进了iOS开发的奇妙世界。特别是关于界面布局的部分,讲解得极其透彻,我跟着书里的示例敲了一遍,竟然真的做出了一个看起来像模像样的界面!这极大地增强了我的信心。如果说有什么可以改进的,那就是希望后续的版本能增加更多关于性能优化的实战案例,毕竟做出能跑的应用和做出流畅的应用之间,还有很长一段距离需要迈进。但总的来说,对于想从零开始搭建起自己的iOS开发知识体系的人来说,这本书绝对是入门阶段的首选,它的结构清晰,内容详实,阅读体验非常流畅,让我感觉学编程也不是那么枯燥乏味了。
印刷不错,内容还是没有涉及GPU、Shaders,属初级水平
印刷不错,内容还是没有涉及GPU、Shaders,属初级水平
全书大部分内容讲的是作者自己写的游戏引擎 还不如看看cocos2d呢 对学习open gl用处不大 最有价值的地方应该是有个完整的游戏源代码吧 多看看这个可以 书的话瞄两眼就可以了!
还不错
全书大部分内容讲的是作者自己写的游戏引擎 还不如看看cocos2d呢 对学习open gl用处不大 最有价值的地方应该是有个完整的游戏源代码吧 多看看这个可以 书的话瞄两眼就可以了!