图书前言

前    言

iOS设备为开发人员制作游戏提供了一个独特的、令人兴奋的平台。iPhone简直就是玩家口袋里一台时刻伴随主人的微型电脑。iPad提供了类似的游戏体验,但屏幕更大,处理能力更强,内存更大。这些设备的触控显示器、加速计以及陀螺仪为用户提供了独特的操控方案。

根据Scott Forstall在苹果2011年度世界开发者大会上的讲话,目前全球已经有超过2亿部iOS设备。这预示着一个巨大的游戏市场前景。在iPad发布的前14个月,苹果共售出2500万台设备。福斯特尔还表示,在三年时间里,App Store中共有140亿个应用程序被下载。开发者们付出的努力总计共获得了超过25亿美金的回报。

根据市场研究机构NewZoo和Distimo的报告(http://www.distimo.com/blog/2011_05_distimo- and-newzoo%C2%A0partner-on-games-data-over-5-million-ios-games-downloaded-per-day-by-63-million-ios-gamers-in-us-eu/),游戏是App Store中最大的应用程序类别,在所有免费和付费下载的应用程序中整整占了一半之多。根据2011年3月全国玩家调查(National Gamers Survey)数据显示,在美国和欧洲有超过6000万位iOS的游戏玩家。

正如您所看到的,在iOS平台上开发游戏具有非常巨大的经济诱惑。但更大的吸引力在于,编写游戏是快乐的!如果您喜欢编写有趣的程序并且喜欢解决难题,您将享受编写游戏的乐趣。此外,游戏还是一个极富表现力的程序。在我的日常工作中,作为一个企业应用程序员,有时我觉得我已经超过上百次地建立了同样的三层数据库/Web应用程序。但对于游戏,每一次的体验都是不同的。

有了合适的工具,您可以做出任何您能想到的游戏。苹果为建立iOS游戏提供了一些非常优秀的免费工具。Xcode,这是我迄今用过的最好的开发环境。如果您熟悉Visual Studio、Eclipse或其他任何行业标准的IDE,您会感觉使用Xcode更贴心。苹果精心设计的API可帮助您充分发挥iOS平台的特性。一旦掌握了某些基础知识的关键点,您应该能够将其应用于任何核心技术,这也正是本书要达到的目的。在本书大多数章节中,您都将建立贴近实用的、可玩的游戏。我认为“做”是最好的学习方式,跟随本书的示例游戏一起演练,您将学会如何使用苹果的工具建立游戏。

本书读者对象

本书介绍如何为iOS设备(例如iPhone,iPod touch和iPad)编写基本游戏。尽管本书假定您具有一定的编程经验,但是我认为基本没有或完全没有编程经验的人,也可以将本书作为步入游戏编程世界之旅的起点。

如果您具有Java、C#或其他面向对象程序语言的经验,那就更好了。如果您了解C语言或Objective-C语言,可以跳过第3章和第4章,因为这些内容可能对您没有什么新意。不过,这两章中我提及的一些小技巧说不定会让您学到一些新东西。

这本书是为没有任何Mac或者iOS开发经验的人准备的。这也是我决定撰写这本书的主要原因之一。其他我所见过的iOS游戏开发方面的书籍,都是假设读者已经具有一定的iOS编程经验。而我不是这样,我从起点入手,由始至终逐步引导您体验整个iOS游戏编写的过程。学完本书后,您将完成几款游戏的编写,并且积累了许多框架的经验,这些框架可用于绘制图形、执行动画、播放声音以及处理用户交互。

请记住,这是一本“入门”级书籍。如果您已经发行过数十款iOS游戏,这本书可能不适合您。为了保证这本书适合入门级的读者,书中没有涉及过于复杂的API。例如,没有介绍如何使用OpenGL渲染图形。然而,我会提示存在更高级的工具,解释它们的适用领域,如果读者认为这些技术可能会更加适合自己的项目,可通过本书确定自己前进的方向。

最后,除了适用于有抱负的游戏开发者之外,我认为本书同样适用于所有iOS应用程序的开发者。毕竟,游戏中用到的图形、动画、声音以及用户交互API同样适用于一个枯燥的数据库应用程序。您可能会在您的下一个商业工具中引入一些特性,比如令客户眼前一亮的动画效果或者更人性化的输入方式,而所有这些都有可能是您在阅读本书之前从来不曾想到过的。

本书主要内容

正如前面所讲,这是一本入门级书籍,因此本书覆盖了进入iOS领域开始编写游戏所需的所有技术。

本书第Ⅰ部分讲述了编写iOS程序需要掌握的非常基础的内容,无论您是否编写游戏都需要掌握这些知识。首先介绍了IDE环境Xcode,这是每个iOS程序员都需要使用的工具,包括那些在苹果公司开发、调试和测试程序的工作人员。然后介绍了C和Objective-C编程语言,这两种语言是用于创建iOS应用程序的自然之选。最后介绍了Cocoa Foundation框架,该框架提供了编写iOS程序所需的基础功能。

在基础奠定后,本书第Ⅱ部分开始讲述编写游戏所需的工具。您将学习如何使用苹果的框架执行游戏需要的基础功能。我将其分为四个领域:图形、用户交互、动画和声音。完成第Ⅱ部分的学习之后,您一定已经具备了从头开始开发自己游戏的能力。

此外,第Ⅱ部分的每一章都设有一个可玩的游戏。当您完成每个示例演练之后,可自行对这些游戏的功能进行提升,从而学习更多在文中讨论过的技巧。您可以把这些示例游戏当成探索iOS游戏开发世界的起点。

本书的内容结构

我对本书的内容结构进行了整理,方便刚开始从事iOS开发的读者能够从头到尾按顺序阅读。建议您按顺序依次阅读,因为每一章介绍的内容会以前面章节的内容为基础。之所以这样组织内容,是为了向读者提供一本教程式的指南而不是参考手册。当然,阅读完本书后,您也可以通过本书来参考查阅API。但是我写这本书的方式是,引导读者从一个主题进入另一个主题,逐渐揭开iOS游戏开发世界的面纱。学会有效地使用苹果的文档,那是最好的参考手册。我的目标是引导您使用这些API创建出属于您自己的游戏。

使用本书需要的准备

要建立iOS应用程序,您需要准备一台安装了Mac OS X的苹果电脑。另外,需要安装Xcode开发环境,可从Mac App Store免费下载Xcode 4。

如果希望在设备上运行您的游戏,例如iPhone或者iPad,而不仅仅是在iPhone模拟器上运行您的代码,您需要加入iOS开发者计划。在撰写这本书时,加入该计划的年费是99美元。加入该计划后,可以在设备上生成和运行程序,并且将完成的应用程序提交到苹果的App Store销售。如果您现在还没有加入开发者计划,不要着急。本书只有极少的示例需要在实际设备上运行。几乎所有示例都可以在模拟器上正常工作。需要在设备上运行的示例,我已经在文中注明。

约定

为了帮助您的阅读,并且留意到需要注意的内容,本书使用了一些约定。

 试一试       

“试一试”是一个练习,按照书中文字描述的步骤操作。

1. “试一试”通常包含一系列步骤。

2. 每个步骤有一个编号。

3. 按照步骤描述在您的Xcode副本中操作。

示例说明

示例说明会出现在每个“试一试”之后,详细解释输入过的代码。

代码有两种显示方式:

大多数代码示例使用monofont字体,没有突出显示,如下所示:

We use a monofont type with no highlighting for most code examples.

陈述上下文中,特别重要的代码使用粗体强调,如下所示:

We use bold to emphasize code that's particularly important in the present context.

源代码

在读者学习本书中的示例时,可以手动输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk. com.cn/downpage上下载。登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击Download Code链接,就可以获得所有的源代码。既可以选择下载一个大的包含本书所有代码的ZIP文件,也可以只下载某个章节中的代码。

在下载代码后,只需用解压缩软件对它进行解压缩即可。另外,也可以进入http://www. wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。

勘误表

尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。

要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。

如果您发现的错误在我们的勘误表里还没有出现的话,请登录www.wrox.com/contact/ techsupport.shtml并完成那里的表格,把您发现的错误发送给我们。我们会检查您的反馈信息,如果正确,我们将在本书的勘误表页面张贴该错误消息,并在本书的后续版本加以修订。

p2p. wrox.com

要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。

在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:

(1) 进入p2p.wrox.com,单击Register链接。

(2) 阅读使用协议,并单击Agree按钮。

(3) 填写加入该论坛所需要的信息和自己希望提供的其他可选信息,单击Submit按钮。

您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。

加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。

要想了解更多的有关论坛软件的工作情况,以及P2P和Wrox图书的许多常见问题的解答,就一定要阅读FAQ,只需在任意P2P页面上单击FAQ链接即可。