标题：iPhone游戏开发实践指南
基础信息
原书名： Learning iOS Game Programming: A Hands-On Guide to Building Your First iPhone Game
原出版社： Addison-Wesley Professional  《iPhone游戏开发实践指南》封面作者： (美)Michael Daley 
译者： 张铮 胥大坤 贾旭
丛书名： 苹果开发与应用系列
出版社：机械工业出版社
ISBN：9787111351764
上架时间：2011-8-29
出版日期：2011 年8月
开本：16开
页码：317
内容简介
《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的发布让他想为更多的人编写游戏，而不仅仅是为自己的孩子。
媒体评论
《iPhone游戏开发实践指南》是一本带领读者走入游戏编程的优秀书籍，它详细解释了针对iPad、iPhone以及iPod touch的游戏设计和实现的每个方面。对于那些对编写游戏感兴趣并准备付诸实现的读者，本书是一个不错的选择。—Tom Bradley，TBXML设计者，软件架构师 
一位优秀的开发人员和一个超赞的游戏——读者能在这本书中找到这些内容，以学习为iPhone创建酷炫游戏。没准你就是下一个AppStore畅销者！—Sebastien Cardoso 
有了《iPhone游戏开发实践指南》，读者可以立即开始编写自己的游戏。书中的代码附有详细的解释，将为读者节省许多在文档中和网上论坛中查找资料的时间。—Pablo Gomez Basanta， Shifting Mind的创始人 
作者在学习和教育方面的激情、解决问题的能力以及将一个完整的游戏作为例子程序使得《iPhone游戏开发实践指南》成为我所阅读过的好书之一。—Eugene Snyetilov 
如果你对于使用OpenGL和OpenAL在iOS平台上进行2D游戏编程很感兴趣，那么《iPhone游戏开发实践指南》将在避免技术细节障碍的同时，带领你经历创建一个完整并有趣的游戏的过程。—Scott D. Yelich 
作者使朦胧的iPhone应用开发变得清晰。具体的例子、通彻的解释以及省时的小技巧使得《iPhone游戏开发实践指南》成为了每个即将开发iPhone游戏的开发人员的必备参考书。—Brandon Middleton，Tic Tac Toe Ten的创建者 
《iPhone游戏开发实践指南》是一本iOS游戏开发的完全手册；这本书带领读者走过从基础和术语到实践使用技术，以开发完整游戏的全过程。在你认识到这一点以前，你将发现在开发自己的游戏时，从这本书中学到的扎实的原理和技术会提供很大的动力。在开发自己的游戏时，没有比这本书更好的参考资料了。—Rod Strougo，Prop Group的创始人。
图书目录
《iphone游戏开发实践指南》 
对本书的赞誉 
译者序 
前言 
第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