零、前言

AndEngine 是一个优秀的、全功能的、免费的、开源的安卓平台 2D 框架。它是安卓平台上为数不多的 2D 框架之一,独立和专业开发人员一直在使用它来创建时尚有趣的游戏,迄今为止,它甚至已经被用于市场上一些最成功的游戏中。然而,取得成功不仅仅需要使用特定的框架。

安卓游戏开发指南提供了许多关于安卓游戏编程最重要方面的信息。这本书涵盖了从 AndEngine 游戏的生命周期到在场景中放置精灵并移动它们的所有内容,一直到创建可破坏的对象和光线投射技术。更重要的是,这本书完全基于 AndEngine 最新最高效的锚中心分支。

这本书涵盖了什么

第 1 章和引擎游戏结构,涵盖了游戏开发的重要方面,关于大多数游戏生存所需要的核心组件。本章涵盖了从音频、纹理、引擎生命周期、保存/加载游戏数据等所有内容。

第 2 章使用实体,开始让我们熟悉 AndEngine 的Entity类及其子类型,如精灵、文本、原语等。Entity类是 AndEngine 的核心组件,允许代码中的对象在屏幕上显示。更具体地说,这一章包括了Entity类中最重要的方法的列表,以允许我们完全控制我们的实体如何行动、反应,或者只是它们看起来像什么。

第三章设计你的菜单,介绍了手机游戏中一些比较常见的菜单设计方面。本章涵盖的主题包括创建按钮、向菜单添加主题音乐、创建视差背景和菜单屏幕导航。本章中的主题也可以很容易地用于游戏的其他领域。

第 4 章使用摄像头讨论了 AndEngine 中包含的各种选项,涉及到游戏摄像头和引擎如何查看游戏场景。我们首先回顾了可供我们使用的不同类型的相机对象,以便让我们正确理解每种相机对象对信息决策的好处。从那里,我们继续涵盖相机移动和缩放,创建超大背景,创建平视显示器,甚至引入分屏游戏引擎进行更复杂的游戏设计。

第 5 章场景和图层管理,展示了如何创建一个健壮的场景管理器框架,该框架包含场景特定的加载屏幕和动画图层。本章中的托管场景利用了资源管理器,并且是非常可定制的。

第 6 章物理学的应用,探索了使用 Box2D 物理学扩展创建 AndEngine 物理学模拟的各种技术。本章中的食谱涵盖了 Box2D 物理世界的基本设置:身体类型、类别过滤、具有多个固定装置的身体、基于多边形的身体、力、关节、碎布娃娃、绳子、碰撞事件、可破坏对象和光线投射。

第 7 章使用更新处理器,演示了每次引擎更新调用一次的更新处理器的使用。本章中的菜谱展示了如何注册基于实体的更新处理器、条件更新以及创建游戏计时器。

第 8 章性能最大化介绍了一些在提高任何安卓游戏性能时最有益的高级实践。本章涵盖优化技术,包括音频、图形/渲染和一般内存管理,以帮助缓解必要的性能问题。

第 9 章和引擎扩展概述,是我们讨论一些更受欢迎的和对项目有益的引擎扩展的地方,这取决于游戏。这些扩展可能并不适合所有人,但对于那些感兴趣的人来说,这一章包括了关于我们如何通过网络服务器和客户端创建实时壁纸、多人组件、创建高分辨率 SVG 纹理和颜色映射纹理的见解。

第 10 章从 AndEngine 获得更多,提供了几个有用的食谱,扩展了前几章中介绍的概念。本章中的食谱包括批量纹理加载、纹理网格、自动阴影、移动平台和绳索桥。

附录 AMagneTank的源代码,概述了游戏 MagneTank,用类对类的描述展示了如何建立一个用 AndEngine 制作的完整游戏。游戏包括了许多章节中的食谱,源代码可以和捆绑代码一起获得。

附录 B《附加食谱》不在本书中,但可通过以下链接免费下载:http://downloads . packtpub . com/sites/default/files/downloads/8987 OS _ AppB _ final . pdf

这本书你需要什么

AndEngine for Android 游戏开发食谱对大部分 AndEngine 开发者都很有用。从前几章开始,读者将开始学习 AndEngine 的基础知识,甚至中级开发人员也会在这几章中找到有用的技巧。随着读者阅读章节的深入,将会涉及到更难的主题,所以初学者不要跳过这一部分是很重要的。此外,尚未过渡到 AndEngine 最新开发分支的中级开发人员将在整本书中找到关于 GLES1/GLES2 分支与本书中讨论的锚中心分支之间差异的有用信息。

建议对 Java 编程语言有一个基本的理解。

执行本书各种主题所需的软件包括用于构建和编译代码的 Eclipse IDE、用于图像绘制/编辑的 GIMP 以及用于 SVG 绘制/编辑的 Inkscape。如果您对这些产品更满意,请随意使用它们的替代品。此外,本书假设读者在使用食谱之前已经获得了所需的库,包括 AndEngine 及其各种扩展。

这本书是给谁的

AndEngine for Android 游戏开发食谱面向有兴趣与最新版本的 AndEngine 合作的开发者,主打全新的 GLES 2.0 主播中心分支。这本书将有助于试图打入移动游戏市场的开发人员,他们打算发布有趣和令人兴奋的游戏,同时消除很大一部分学习曲线,否则当进入和工程开发时这是不可避免的。

惯例

在这本书里,你会发现许多区分不同种类信息的文本风格。以下是这些风格的一些例子,以及对它们的含义的解释。

文本中的码字如下所示:“从绝对最基本的Entity方法开始,我们将一个Entity对象附加到一个Scene对象上。”

代码块设置如下:

  float baseBufferData[] = {
      /* First Triangle */
      0, BASE_HEIGHT, UNUSED, /* first point */
      BASE_WIDTH, BASE_HEIGHT, UNUSED, /* second point */
      BASE_WIDTH, 0, UNUSED,    /* third point */

      /* Second Triangle */
      BASE_WIDTH, 0, UNUSED, /* first point */
      0, 0, UNUSED, /* second point */
      0, BASE_HEIGHT, UNUSED, /* third point */
  };

警告或重要提示会出现在这样的框中。

类型

提示和技巧是这样出现的。

读者反馈

我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或可能不喜欢什么。读者反馈对我们开发您真正能从中获得最大收益的标题非常重要。

要给我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>发送电子邮件,并通过您的消息主题提及书名。

如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参阅我们在www.packtpub.com/authors上的作者指南。

客户支持

现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您在http://www.PacktPub.com的账户中下载您购买的所有 Packt 书籍的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.PacktPub.com/support并注册,以便将文件直接通过电子邮件发送给您。

勘误表

尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码中的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/support,选择您的书籍,点击勘误表 提交 表格链接,并输入您的勘误表详情。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站上,或添加到该标题的勘误表部分下的任何现有勘误表列表中。通过从http://www.packtpub.com/support中选择您的标题,可以查看任何现有的勘误表。

盗版

互联网上版权材质的盗版是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。

请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,获取疑似盗版资料的链接。

我们感谢您在保护我们作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有问题,可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽最大努力解决。