《Android游戏开发实践指南》

2012年6月8日10:05:06 发表评论 12 views

《Android游戏开发实践指南》是一本经典的Android游戏开发教程,由资深软件开发专家亲自执笔,AndEngine引擎创建者作序推荐。

《Android游戏开发实践指南》

书中以开源引擎AndEngine为基础,不仅以专题的形式巧妙地将Android游戏开发必须掌握的各项关键技术(场景、图层、图形绘制、精灵、动画、物理效果、粒子系统、碰撞检测、关卡设计、美工、声音……)串联起来,系统地讲解了Android游戏开发者应该学习的理论知识,而且用一个完整的案例贯穿全书,将游戏开发的各项要素整合到一起,对Android游戏开发的方法和流程做了一个全景展示,可操作性极强。

《Android游戏开发实践指南》共分17章:第1章介绍手机游戏的概况和类型;第2章~第15章各章都会阐述一个与游戏开发相关的话题,其中包括游戏的要素与游戏开发的工具,游戏逻辑循环的概念和用AndEngine开始开发游戏的方法,场景、图层、场景切换与实体修改器,精灵和动画精灵的绘制方法,文本和用户输入,瓦片地图,粒子系统,声音,物理效果,人工智能,计分与碰撞以及多媒体扩展包;第16章介绍如何通过完善现有功能使游戏更有趣;第17章介绍游戏的测试与发行。每章最后都有练习题,可帮助读者边学边练,迅速提高技能,书最后提供了习题答案。

《Android游戏开发实践指南》前言

本书要点

这是一本讲解如何编写Android手机游戏的书。只要读者略有开发Android应用的经验,就可以通过阅读本书,将这种经验同AndEngine开源游戏引擎结合起来,制作出2D手机游戏。无论要写什么类型的游戏,本书都会提供范例,并逐步讲解它们。本书旨在让你熟悉AndEngine并且尽快发布游戏,其中许多例子都是为了支持一个范例游戏:《少女大战吸血鬼》(Virgins Versus Vampires,V3)的开发。

本书开篇的第1章会介绍手机游戏的概况、流行程度、游戏的类型以及游戏策划的范例。接下来的数章,每章将会针对一个游戏开发相关的话题展开论述。

第2章讲述了用来开发游戏的工具,包括进行代码开发、美工和声音制作所用的工具。

第3章介绍了游戏逻辑循环的概念,并且演示了如何用AndEngine开始开发游戏。

第4章深入探讨图形绘制,详解了AndEngine所提供的场景切换与实体修改器机制,运用它们可使游戏的显示效果丰富多彩。

第5章再进一步深入游戏中的位图和矢量图形的绘制,演示了如何绘制精灵。

第6章介绍了构建动画精灵的简单方法,以及如何让物体动起来。

第7章给出使用AndEngine以各种方式在游戏中显示文本的范例。

第8章研究了Android游戏可用的用户输入选项,包括触摸、多点触摸、键盘、语音识别、加速度计、定位器与方向检测器。

第9章讲述了AndEngine如何载入和使用瓦片地图,以及如何用瓦片集去构造无限广阔的虚拟世界。

第10章演示了内建于AndEngine的粒子系统,并展示了如何用XML文件定义与保存粒子效果。

第11章展示了如何用AndEngine来查找、获取、修改、使用背景音乐与音效。

第12章研究了物理引擎Box2D。它与AndEngine一起,使开发基于物理交互对象的游戏更加容易。

第13章研究了可以让游戏更加智能、更加好玩的人工智能技术。

第14章搭建了一个基于游戏元素间碰撞的计分框架。

第15章探究了AndEngine可以利用扩展而完成的功能,例如创建Android活动桌布,播放MOD音乐文件,创建“增强现实游戏”,以及在多人游戏的玩家中进行通信。

第16章通过完善现有功能或增加新功能使游戏更具可玩性,并至此结束本书的范例游戏开发。

第17章讲述了为确保游戏顺利发行而需要做的事情,然后告诉读者如何发行与推销游戏。

附录提供了每章末尾习题的答案。

本书最好按顺序阅读,但如果读者觉得跳读更合适的话,那样也可以。每一个主题基本上都作为独立的概念来讲述,但是如果需要引用其他章的概念来讲述它,那么那些概念也会被提到。

对于读者来说,本书的目的很简单:玩得开心。本书的写作精神是,游戏应该是有趣的,而且开发游戏本身也应该有趣。愿你的游戏能够在Android Market的“热门下载”列表中登上榜首。

本书的目标读者

如果读者迫不及待地想要为Android设备开发2D游戏,并且至少具备一些用Android SDK和Java进行Android应用开发的经历,那么本书就很适合你了。本书介绍了手机游戏的基本主题,并演示了如何用AndEngine游戏引擎去实现它们。要学习这些范例的话,不一定必须是个Android开发高手,但需要熟悉Android的基本概念[例如活动(Activity)、服务(Service)、意图(Intent)等],同时需要能熟练地阅读与编写Java代码、使用Android SDK。

......

《Android游戏开发实践指南》精彩书摘

第1章

手机游戏

1.1 手机游戏市场

1.2 电脑游戏的世界

1.3 AndEngine范例

1.4 总结

1.5 习题

也许没有什么东西能像游戏精神这样无所不在—几乎每个人都喜欢玩某种游戏。而且,正如俗话说“每个人都至少能构思出一部好的小说”,毫不夸张地说,每个人也都至少有一个好的游戏点子。你可能有一个手机游戏的创意,否则就不会翻开这本书了。本书旨在讲解如何编写游戏,使之运行在Android手机上。不管要开发的游戏是和范例游戏很相似,还是与之差别很大,本书都会带领读者用流行的AndEngine游戏引擎来制作2D手机游戏并将其发布到Android Market上。

对于许多人来说,软件开发本身就是一个游戏—一个无休止的解谜游戏,我们在其中试图找寻实现应用程序创意的最佳方法,同时,更多的谜题将会在调试最初所写代码时出现。当把应用程序本身看做游戏时,我们可以在多个层面享受到整个开发过程的乐趣。快过来一起玩这个软件开发的游戏吧,它会实现一直在你脑海中盘旋的创意!

1.1 手机游戏市场

在今天的智能手机市场里,游戏可谓是杀手级应用。根据一份数据,在所有年满13岁的美国手机用户中,超过23%的人在手机上玩游戏—而且这个比例还在增加,尤其是对于超过6000万的智能手机用户来说。根据另一份数据,65%的智能手机用户曾经在手机上玩过至少一款手机游戏。计算一下可知,这意味着现在大约有4000万人在智能手机上玩游戏。

制作手机游戏可以是非常盈利的。尽管很难预料哪种游戏会一炮走红,然而快速浏览一下Android Market就会发现,成千上万的用户都曾下载了某种类型的游戏。就算每次下载只获利数美元,累计起来也相当可观。人们玩某款游戏一段时间之后,就大多会厌倦,很有可能再去下载新的游戏。

作为众多游戏迷中的一员,笔者将游戏看做最钟爱的手机应用之一。不管是在等人的时候打发时间,还是在公交车上,或者就是想放松几分钟,我都会在手机上玩会儿游戏,这是一件非常愉快的事情。

我认为每款游戏都应该有趣,但这并不意味着游戏不能同时具有教学功能。游戏经常用做教学或广告的手段—为什么不呢?如果学生或者潜在的顾客能够开心地玩一款带给他们益处的游戏,那会是件好事情。

1.2 电脑游戏的世界

差不多从有了计算机开始,人们就在上面玩游戏了,而且各式各样游戏都已制作出来。在Jane McGonigal的书《Reality Is Broken》中,作者说,大部分游戏都有以下四个属性。

目标:游戏清晰地定义了玩家需要达成的目标。重要的是,目标虽具有挑战性,却是可以达成的。理想情况下,玩家总是能充分发挥出他们的能力。目标让玩家在玩游戏时有一种使命感。

规则:游戏具有所有玩家必须遵守的规则。规则经常使得目标的达成变得困难,从而鼓励玩家产生创造性的玩法。

反馈:游戏必须告诉玩家他们玩得怎么样。实际上,有趣且有创意的反馈系统是让游戏有趣的关键。

自愿参与:除非真的愿意去玩,否则它就不算是个游戏。游戏的这个特性意味着玩家要接受游戏所定的目标、规则与反馈系统。

在制作游戏之前,需要思考存在哪些类型的游戏,也要思考哪些类型适合在手机上玩,哪些不适合,还要看看所有电脑游戏的共同要素。

……

《Android游戏开发实践指南》价格

报价查询

《Android游戏开发实践指南》目录

译者序

前言

第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 总结

附录 习题解答

  • yiisaa
  • 这是我的微信扫一扫
  • weinxin
  • zhengweiqiangcom
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: