新書推薦:
《
棕榈油的全球史 : 从奴隶船到购物篮
》
售價:NT$
440.0
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:NT$
1400.0
《
进化主义在中国的兴起(王中江著作系列)
》
售價:NT$
950.0
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:NT$
280.0
《
东亚世界形成史论(新版)
》
售價:NT$
490.0
《
奶奶的半个心愿 “课本里的作家” 中考热点作家孙道荣2024年全新散文集
》
售價:NT$
190.0
《
天生坏种:罪犯与犯罪心理分析
》
售價:NT$
445.0
《
新能源材料
》
售價:NT$
290.0
編輯推薦:
div
·全球资深软件开发专家亲自执笔,AndEngine创始人Nicolas Gramlich作序鼎力推荐!
·理论知识系统而全面,讲解了Android游戏开发的方方面面;实战性强,以各种经典游戏案例为导向,全面展示了Android游戏开发的流程、方法和技巧,是系统学习Android游戏开发的经典教程。
內容簡介:
本书是一本经典的Android游戏开发教程,由资深软件开发专家亲自执笔,AndEngine引擎创建者作序推荐。
书中以开源引擎AndEngine为基础,不仅以专题的形式巧妙地将Android游戏开发必须掌握的各项关键技术(场景、图层、图形绘制、精灵、动画、物理效果、粒子系统、碰撞检测、关卡设计、美工、声音……)串联起来,系统地讲解了Android游戏开发者应该学习的理论知识,而且用一个完整的案例贯穿全书,将游戏开发的各项要素整合到一起,对Android游戏开发的方法和流程做了一个全景展示,可操作性极强。
全书共分17章:第1章介绍手机游戏的概况和类型;第2章~第15章各章都会阐述一个与游戏开发相关的话题,其中包括游戏的要素与游戏开发的工具,游戏逻辑循环的概念和用AndEngine开始开发游戏的方法,场景、图层、场景切换与实体修改器,精灵和动画精灵的绘制方法,文本和用户输入,瓦片地图,粒子系统,声音,物理效果,人工智能,计分与碰撞以及多媒体扩展包;第16章介绍如何通过完善现有功能使游戏更有趣;第17章介绍游戏的测试与发行。每章最后都有练习题,可帮助读者边学边练,迅速提高技能,书最后提供了习题答案。
關於作者:
ick
Rogers 资深软件开发工程师,拥有30余年软件开发经验,从事手机软件开发10余年,经验十分丰富。他还是一位有经验的技术作家,曾在杂志上发表过多篇技术文章,并著有另外一本关于Android应用开发的图书。
译者简介
爱飞翔 资深Android开发工程师和游戏开发工程师,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。他是手机软件开发引擎AgileMobileEngine的创始人兼项目经理,同时也是CatEngine手机游戏开发引擎的联合创始人兼代码维护员。他对极限编程、设计模式、重构、测试驱动开发、敏捷软件开发等也有较深入的研究,目前负责敏捷移动开发网(http:www.agilemobidev.com)的运营。业余爱好文学和历史,有一定的文学造诣。
目錄 :
译者序
序
前言
第1章 手机游戏
1.1 手机游戏市场
1.2 电脑游戏的世界
1.2.1 游戏类型
1.2.2 适合于手机的游戏
1.2.3 典型的游戏组件
1.2.4 《少女大战吸血鬼》
1.2.5 V3的设计
1.3 AndEngine范例
1.4 总结
1.5 习题
第2章 游戏要素与工具
2.1 软件开发工具
2.1.1 Android SDK
2.1.2 AndEngine游戏引擎库
2.1.3 AndEngine游戏概念
2.1.4 Box2D物理引擎
2.2 图形工具
2.2.1 矢量图工具:Inkscape
2.2.2 位图工具:GIMP
2.2.3 动画捕捉:AnimGet
2.2.4 瓦片地图创建工具:Tiled
2.2.5 TrueType字体创建与编辑工具:FontStruct
2.3 声音工具
2.3.1 音效工具:Audacity
2.3.2 背景音乐工具:MuseScore
2.4 初试身手:制作启动画面
2.4.1 创建游戏项目
2.4.2 加入AndEngine库
2.4.3 加入启动画面代码
2.4.4 用模拟器运行游戏
2.4.5 用Android设备运行游戏
2.5 总结
2.6 习题
第3章 游戏循环与菜单
3.1 游戏循环概述
3.2 AndEngine的游戏循环
3.2.1 初始化Engine对象
3.2.2 其他Engine类
3.3 为V3增加菜单屏幕
3.3.1 AndEngine的菜单
3.3.2 构建V3的开始菜单
3.3.3 创建菜单
3.3.4 MainMenuActivity类
3.3.5 常数与字段
3.3.6 onLoadResources方法
3.3.7 onLoadScene方法
3.3.8 createStaticMenuScene方法与createPopUpScene方法
3.3.9 onKeyDown方法与onMenuItemClicked方法
3.3.10 从启动画面切换到菜单
3.4 内存使用
3.5 “退出”选项
3.6 总结
3.7 习题
第4章 场景、图层、场景切换与实体修改器
4.1 AndEngine的场景
4.1.1 实体组件模型
4.1.2 Entity类
4.1.3 构造器
4.1.4 Entity类的位置相关方法
4.1.5 Entity类的缩放相关方法
4.1.6 Entity类的颜色相关方法
4.1.7 Entity类的旋转相关方法
4.1.8 管理子对象
4.1.9 管理Modifier
4.1.10 其他有用的Entity类方法
4.1.11 Layer类
4.1.12 Scene类
4.1.13 背景管理
4.1.14 子Scene对象管理
4.1.15 Layer对象管理
4.1.16 上级Scene对象管理
4.1.17 触摸区域管理
4.1.18 特殊Scene类
4.1.19 用于Entity的Modifier类
4.1.20 EntityModifier类的通用方法
4.1.21 位置相关的EntityModifier类
4.1.22 缩放相关的EntityModifier类
4.1.23 颜色相关的EntityModifier类
4.1.24 旋转相关的EntityModifier类
4.1.25 透明度相关的EntityModifier类
4.1.26 延迟相关的EntityModifier类
4.1.27 Modifier的组合
4.1.28 EaseFunction
4.2 创建游戏第1关的场景
4.3 总结
4.4 习题
第5章 绘制与精灵
5.1 快速回顾Entity类
5.2 绘制线条与矩形
5.2.1 线条
5.2.2 矩形
5.3 精灵
5.3.1 贴图
5.3.2 效率问题
5.3.3 复合精灵
5.4 总结
5.5 习题
第6章 动画
6.1 动画所需素材
6.2 动画的瓦片贴图
6.3 AndEngine的动画
6.4 动画范例
6.5 将动画加入Level1Activity类
6.6 动画制作的问题
6.7 高级话题:从3D模型中制作2D动画
6.8 总结
6.9 习题
第7章 文本
7.1 字型与字体
7.2 载入字型
7.2.1 Font类
7.2.2 StrokeFont类
7.2.3 FontFactory类
7.2.4 FontManager类
7.2.5 Typeface类
7.3 AndEngine中的文本
7.3.1 AndEngine中的文本API
7.3.2 桌面通知
7.4 定制字型
7.5 将定制字型加入V3
7.6 总结
7.7 习题
第8章 用户输入
8.1 Android与AndEngine的输入方式
8.1.1 字母键盘与袖珍键盘
8.1.2 触摸
8.1.3 自定义手势
8.1.4 屏幕游戏手柄
8.1.5 加速计
8.1.6 位置和方向
8.1.7 语音
8.2 将用户输入加入V3
8.3 总结
8.4 习题
第9章 瓦片地图
9.1 为何使用瓦片地图
9.2 瓦片地图的类型
9.2.1 正交瓦片地图
9.2.2 等距投影瓦片地图
9.3 瓦片地图的结构
9.4 AndEngine中的瓦片地图
9.4.1 TMX与TSX文件
9.4.2 TMXLoader类
9.4.3 TMXTiledMap类
9.4.4 TMXLayer类
9.4.5 TMXTile类
9.5 瓦片编辑器:Tiled
9.6 TMX文件
9.7 正交瓦片地图游戏:《打吸血鬼》
9.7.1 WAV的瓦片地图
9.7.2 创建WAV的瓦片集
9.7.3 创建WAV的瓦片地图
9.7.4 《打吸血鬼》游戏的代码
9.8 等距投影瓦片地图
9.9 总结
9.10 习题
第10章 粒子系统
10.1 粒子发射器是什么
10.2 粒子系统如何运作
10.3 AndEngine的粒子系统
10.3.1 ParticleSystem类
10.3.2 ParticleEmitter类
10.3.3 ParticleInitializer类
10.3.4 ParticleModifier类
10.3.5 有用的ParticleSystem类方法
10.4 创建粒子系统
10.4.1 以传统方式创建粒子系统
10.4.2 以XML文件创建粒子系统
10.5 将粒子发射器加入V3游戏中
10.5.1 以传统方式制作V3的爆炸效果
10.5.2 以XML文件方式制作V3的爆炸效果
10.6 总结
10.7 习题
第11章 声音
11.1 如何在游戏中使用声音
11.1.1 音乐
11.1.2 音效
11.2 音乐与音效的来源
11.3 音乐与音效制作工具
11.4 音频解码器
11.5 使用AndEngine播放声音
11.5.1 Music类
11.5.2 Sound类
11.5.3 MusicFactory类
11.5.4 SoundFactory类
11.6 将声音加入V3游戏
11.6.1 创建音效
11.6.2 创建背景音乐
11.6.3 修改V3游戏的代码
11.7 总结
11.8 习题
第12章 物理效果
12.1 Box2D物理引擎
12.1.1 Box2D概念
12.1.2 设定Box2D
12.2 构建物理学游戏的关卡
12.3 AndEngine与Box2D
12.3.1 下载AndEnginePhysicsBox2DExtension并将其加入游戏项目
12.3.2 Box2D的API
12.3.3 简单的物理效果范例
12.3.4 关卡加载
12.4 《愤怒的村民》:V3中的物理学小游戏
12.5 实现IV游戏
12.5.1 创建关卡
12.5.2 编写IVActivity.java
12.6 总结
12.7 习题
第13章 人工智能
13.1 游戏AI相关话题
13.1.1 简单的脚本
13.1.2 决策树、Minimax树与状态机
13.1.3 专家系统或基于规则的决策系统
13.1.4 神经网络
13.1.5 遗传算法
13.1.6 路径查找
13.1.7 动态困难度调节
13.1.8 程序化的音乐生成
13.2 实现V3游戏的AI
13.3 总结
13.4 习题
第14章 计分与碰撞
14.1 计分系统设计
14.1.1 更新小游戏取得的分数
14.1.2 记录5个最高分
14.1.3 在小游戏场景中显示分数
14.1.4 分数页面的显示
14.2 AndEngine的碰撞
14.2.1 AndEngine的Shape碰撞
14.2.2 Box2D的碰撞
14.3 开始计算玩家的得分
14.4 《墓地》(第1关)场景
14.4.1 常量和字段
14.4.2 onLoadEngine方法与onLoadResources方法
14.4.3 onLoadScene方法
14.4.4 mStartVamp任务
14.5 《打吸血鬼》
14.5.1 常量和字段
14.5.2 onLoadScene方法
14.5.3 openCoffin和closeCoffin方法
14.6 《愤怒的村民》
14.6.1 常量和字段
14.6.2 onLoadScene方法
14.6.3 onLoadComplete方法
14.6.4 addStake方法
14.7 总结
14.8 习题
第15章 多媒体扩展包
15.1 下载多媒体扩展包
15.2 动态壁纸
15.2.1 Android动态壁纸
15.2.2 创建V3的Android动态壁纸
15.3 MOD格式音乐
15.3.1 搜寻MOD格式的音乐
15.3.2 XMP MOD播放器
15.4 多人游戏
15.5 AndEngine的多点触摸
15.6 增强现实游戏
15.7 总结
15.8 习题
第16章 游戏集成
16.1 困难度调节
16.1.1 困难度参数的保存
16.1.2 困难度参数的设定
16.2 游戏结束画面的代码
16.3 第1关:主游戏
16.4 《打吸血鬼》
16.5 《愤怒的村民》
16.6 选项菜单
16.7 总结
16.8 习题
第17章 测试与发行
17.1 应用程序商业模式
17.2 测试与发行准备工作
17.2.1 在实际设备上测试游戏
17.2.2 考虑加入终端用户许可协议
17.2.3 向Manifest文件加入图标与标签
17.2.4 关闭记录与调试功能
17.2.5 在游戏中增加版本号
17.2.6 获取密钥
17.2.7 编译与签名最终的.apk文件
17.2.8 测试最终的.apk文件
17.3 发行游戏
17.3.1 Android Market
17.3.2 Amazon App Store
17.4 推广游戏
17.4.1 App Store推广
17.4.2 游戏评论网站推广
17.4.3 手机广告
17.4.4 口碑营销
17.4.5 社交网络推广
17.5 总结
附录 习题解答
內容試閱 :
第1章
手机游戏
1.1 手机游戏市场
1.2 电脑游戏的世界
1.3 AndEngine范例
1.4 总结
1.5 习题
也许没有什么东西能像游戏精神这样无所不在—几乎每个人都喜欢玩某种游戏。而且,正如俗话说“每个人都至少能构思出一部好的小说”,毫不夸张地说,每个人也都至少有一个好的游戏点子。你可能有一个手机游戏的创意,否则就不会翻开这本书了。本书旨在讲解如何编写游戏,使之运行在Android手机上。不管要开发的游戏是和范例游戏很相似,还是与之差别很大,本书都会带领读者用流行的AndEngine游戏引擎来制作2D手机游戏并将其发布到AndroidMarket上。
对于许多人来说,软件开发本身就是一个游戏—一个无休止的解谜游戏,我们在其中试图找寻实现应用程序创意的最佳方法,同时,更多的谜题将会在调试最初所写代码时出现。当把应用程序本身看做游戏时,我们可以在多个层面享受到整个开发过程的乐趣。快过来一起玩这个软件开发的游戏吧,它会实现一直在你脑海中盘旋的创意!
1.1 手机游戏市场
在今天的智能手机市场里,游戏可谓是杀手级应用。根据一份数据,在所有年满13岁的美国手机用户中,超过23%的人在手机上玩游戏—而且这个比例还在增加,尤其是对于超过6000万的智能手机用户来说。根据另一份数据,65%的智能手机用户曾经在手机上玩过至少一款手机游戏。计算一下可知,这意味着现在大约有4000万人在智能手机上玩游戏。
制作手机游戏可以是非常盈利的。尽管很难预料哪种游戏会一炮走红,然而快速浏览一下AndroidMarket就会发现,成千上万的用户都曾下载了某种类型的游戏。就算每次下载只获利数美元,累计起来也相当可观。人们玩某款游戏一段时间之后,就大多会厌倦,很有可能再去下载新的游戏。
作为众多游戏迷中的一员,笔者将游戏看做最钟爱的手机应用之一。不管是在等人的时候打发时间,还是在公交车上,或者就是想放松几分钟,我都会在手机上玩会儿游戏,这是一件非常愉快的事情。
我认为每款游戏都应该有趣,但这并不意味着游戏不能同时具有教学功能。游戏经常用做教学或广告的手段—为什么不呢?如果学生或者潜在的顾客能够开心地玩一款带给他们益处的游戏,那会是件好事情。
1.2 电脑游戏的世界
差不多从有了计算机开始,人们就在上面玩游戏了,而且各式各样游戏都已制作出来。在JaneMcGonigal的书《RealityIsBroken》中,作者说,大部分游戏都有以下四个属性。
目标:游戏清晰地定义了玩家需要达成的目标。重要的是,目标虽具有挑战性,却是可以达成的。理想情况下,玩家总是能充分发挥出他们的能力。目标让玩家在玩游戏时有一种使命感。
规则:游戏具有所有玩家必须遵守的规则。规则经常使得目标的达成变得困难,从而鼓励玩家产生创造性的玩法。
反馈:游戏必须告诉玩家他们玩得怎么样。实际上,有趣且有创意的反馈系统是让游戏有趣的关键。
自愿参与:除非真的愿意去玩,否则它就不算是个游戏。游戏的这个特性意味着玩家要接受游戏所定的目标、规则与反馈系统。
在制作游戏之前,需要思考存在哪些类型的游戏,也要思考哪些类型适合在手机上玩,哪些不适合,还要看看所有电脑游戏的共同要素。
……