本书帮助读者掌握使用J2ME开发手机游戏的方法和技巧。\r\n 全书分5个部分19章,另有3个附录。第一部分是前3章,介绍手机游戏开发的基础知识,以及如何使用Java和J2ME Wireless Toolkit创建一个手机游戏。第二部分是第4章到第9章,介绍如何为手机游戏绘制图形和图像,还详细叙述了实例游戏Henway的开发过程。第三部分包括第10章到第13章,介绍游戏图层和人工智能基础,开发了另一个完整的游戏High Seas。第四部分是第14章到第16章,介绍如何实现手机无线网络功能,并开发了网络游戏Connect 4。最后一部分是第17章到第19章,介绍如何优化游戏代码以及如何保存最高得分记录,还开发了完整的Space Out游戏。附录部分提供了手机游戏编程的有用的参考资料。随书光盘中包含了本书中所有的实例代码,以及为没有Java基础的读者准备的Java编程教程。\r\n 本书适合希望学习J2ME手机游戏编程的读者阅读,也可作为J2ME手机游戏编程的培训教材。 \r\n
第一部分 手机游戏编程起步\r\n 第1章 发展中的游戏 \r\n 1.1 移动游戏的本质 \r\n 1.1.1 第一款手机游戏 \r\n 1.1.2 手机游戏市场\r\n 1.1.3 手机游戏的文化\r\n 1.1.4 手机游戏的前沿 \r\n 1.2 认识移动平台\r\n 1.2.1 Java 2 Micro Edition(J2ME)\r\n 1.2.2 Binary Runtime Environment for Wireless(BREW) \r\n 1.2.3 Symbian\r\n 1.2.4 Windows Mobile Smartphone \r\n 1.3 Java作为手机游戏平台 \r\n 1.3.1 什么是Java\r\n 1.3.2 为什么选择Java \r\n 1.3.3 Java和手机编程 \r\n 1.4 J2ME基础简介 \r\n 1.4.1 Configuration和CLDC \r\n 1.4.2 Profile和MIDP \r\n 1.5 本章小结 \r\n 1.6 实践练习 \r\n 第2章 Java手机游戏开发基础\r\n 第3章 构建称动游戏Skeleton\r\n第二部分 手机游戏编程基础\r\n 第4章 手机游戏图形\r\n 第5章 使用精灵动画\r\n 第6章 处理手机用户输入\r\n 第7章 Henway,向Frogger致意\r\n 第8章 使用乐音产生声音\r\n 第9章 播放数字化声音和音乐\r\n第三部分 虚拟世界和手机游戏智能\r\n 第10章 创建平铺的游戏图层\r\n 第11章 管理多个游戏图层\r\n 第12章 High Seas:你是游戏中的海盗\r\n 第13章 教游戏思考\r\n第四部分 利用无线网络\r\n 第14章 手机游戏网络基础\r\n 第15章 Connect 4 :为经典游戏实现\r\n 第16章 调试和部署\r\n第五部分 优化你的游戏\r\n 第17章 优化Java手机游戏\r\n 第18章 Space Out:向Space Invaders致敬\r\n 第19章 记录最高得分\r\n附录\r\n 附录A Java游戏APL参考\r\n 附录B 手机游戏编程资源\r\n 附录C 为手机游戏创建图形\r\n\r\n
Michael Morrison是一个作家、开发者、玩具发明者,以及很多计算机技术图书和Web交互课程的作者,他的主要职业是作家和自由职业者,Michael还是Stalefish Labs公司的富有创造性的领导。Stalefish Labs公司目前在开发一系列的手机运动类游戏,欲知详情可以访问Http://www.talltalesgame.com/。除了热衷于计算机、打曲棍球、溜冰板、和妻子一同看电影外,Michael还喜欢在鱼塘钓鱼。
李强,国内IT公司项目经理,有数年项目开发经验,熟悉C++、Java等编程语言,爱好电脑游戏和手机游戏。主要译作有《思科网络技术学院教程:Java 编程基础》和《计算机网络第一阶》。
我现在正坐在牙医的椅子上,等待注射麻药以使我的牙龈失去知觉,此时我想起来我可以更好地利用这段时间。尽管牙医的椅子和围兜肯定在某种程度上限制了我的活动,但它们并不能阻止我和数百个最亲近的朋友和对手一起通过无线网络玩在线的多玩家游戏。我很快地从口袋里拿出我的支持Java功能的手机并快速打开一个游戏,于是我就能够很快从旧式的牙医工具带来的不可避免的不舒适感中转移出来。朋友,这就是手机游戏的全部。
我知道,你已经听到关于“无线革命”的讨论好几年了,并且你已经把它们归为欺骗性宣传。我并不管你。直到最近,我仍然在怀疑在这种我经常从地上捡起来并祈祷能够继续使用的设备上,能够实现些什么。让我们来面对这样一个事实:当我们思考未来的手机交互娱乐的时候,手机不再是我们大多数人所能想象的那个样子了。但是,我们不会太长时间地保持这种态度。事实上,手机已经成为游戏机,并且如果你在阅读本书,显然你对于进入游戏感兴趣。
尽管把手机和Palm Pilots、Pocket PCs和Game Boys等其他的各种手持娱乐设备(只是举出几种)划分到一起绝对是合法的,但是本书还是对手机游戏编程采取了一种比较窄的视角,因为本书重点关注游戏在手机上的应用。这并不是因为我反对任何其他的设备,而是这些设备中没有任何一种的应用像手机这样随处可见。考虑最少5个你所知道的技术人员,看看有多少个拥有手机。如果答案少于4个或5个,那就再给他们两年时间。不管我的非正式的调查是否能够让你信服,手机都代表了世界上所能见到的最广泛的计算机设备,并且它还在以惊人的速度增长。
因此,你看到这些人都带着个人通信设备(手机),并且主要用它们来互相通话。然后,这些通信设备上的技术达到了简单声音通信之外的水准。像支持Java的手机这样的技术,已经大致上具备了和桌面计算机相同的能够里。把这些和无线网络支持一同集合到所有的手机上,那么,你的手上就有了一种相当独特的设备:它是有质感的、紧缩的、便携的、网络和可编程的,这简直是一个游戏程序员的梦想。
如果我说手机游戏编程并非处于其幼年时期,那么是我在撒谎。这项技术很新,并且支持这项技术的手机也很新。但是,当你知道了这项技术,更上这项技术最新进展的唯一方法就是尽可能地处于学习曲线的领先位置。在手机游戏产业还未完全绽放的时候,就学习如何设计和构建手机游戏,那么当产业兴起的时候,你就能够做好准备更好地把握机会。不管你想开发的游戏只是一个和家人分享的手机游戏,还是一个为你赢得足够提早退休的积蓄的功能完备的商业游戏,或者是奠定你在手机游戏名人堂的地位的游戏,本书会为你提供开始手机游戏编程所需的一切。图1所示的例子是你将要在本书中设计和构建的第一个游戏。
图1所示的Henway游戏是基于经典的街机游戏Frogger。如果你不喜欢驱使一只小鸡通过马路,那么也许图2中的High Seas游戏能够引起你的兴趣。
Highe Seas游戏是一款海盗游戏,你在其中绕着一个航海地图航行,挽救失踪的海盗同时逃避墨鱼、浮动水雷以及更大的敌对海盗船的袭击。这是你在本书中所构建的5个完整游戏中的两款。我还为你准备了其他的惊喜。
Java是本书选择用来进行手机游戏开发的语言,并且采用它有充分的原因。我在第1章中更加详细地说明了这种选择,但是,最直接的原因致只是因为在现在和可预见的未来,Java都是手机游戏开发中占据优势的技术。随书光盘中包含一个附赠的Java教程——“Java编程基础”,以免你对Java不了解。不管在学习本书的时候你对Java的看法是怎么样的,我想在本书结束后你会同意Java是进行手机游戏开发的理想技术。
人们常常问我用来进行手机游戏编程的手机是哪一种。我总是告诉他们是我桌上巨大的那个东西。我说的是我的台式PC,在我进行手机游戏开发的大多数时间里,我用通过它来使用手机模拟器。市场上有很多种手机并且新款频繁发布,采用一种特定的手机而保证本书内容不会很快过时,对我来说几乎是不可能的。因此,我建议使用J2ME Wireless Toolkit内建的Java模拟器,随书CD中包含有这个工具。当然,我还是希望你在开发过程中在真实的手机上测试你的游戏,但你会对模拟器的方便性感到吃惊。
和桌面电脑游戏以及家庭游戏系统的游戏编程一样,手机游戏编程也不容易。你必须要掌握和组合应用各种软件开发技术,更别说要有创造性和艺术敏感性了。可能艺术和技术技能的这种独特的混合,正是游戏编程令人迷恋的地方。在一个带有无线网络连接的微小设备上来实现这些,你肯定会得到某些不平凡的技术乐趣。
本书的组织结构
本书由5个部分组成,每个部分负责处理游戏编程的一个不同的方面。
第一部分“手机游戏编程起步”
在这个部分,你将学到手机游戏开发的基础知识以及如何使用Java和J2ME Wireless Toolkit创建一个手机游戏。你会构建一个游戏框架来作为本书中后面的游戏的模版,并且使用一个Java手机模拟器来测试游戏。
第二部分“手机游戏编程基础”
在本部分,你学习如何为手机游戏绘制图形和图像。你学习精灵动画,这是二维游戏编程的基础。你还将开发一个个完整的游戏Henway。确实,这里有一些动物的主题,但是别担心,在本书稍后你会接触到海盗和外星人主题。
第三部分“虚拟世界和手机游戏智能”
在本部分,你将学习游戏图层以及它们如何用来将游戏构建为重叠的可视块。你还将了解人工智能(AI)的基础,以及它为什么对游戏很重要。AI是一个令人生畏的话题,因此我只是介绍一些容易理解并且应用于你的游戏中的AI技术。本书的这一部分还开发了另一个完整的游戏High Seas,这是一个海盗游戏,你在其中围绕一个海洋地图航行,和其他的海盗船以及海上怪物战斗。
第四部分“利用无线网络”
在本部分,你会了解到如何实现手机的最重要的功能:无线网络。在学习了手机游戏网络编程的基础知识后,你要开发一个名为Connect4的游戏,它是经典Connect4游戏的手机网络版。
第五部分“优化你的游戏”
在本部分,你研究了一些有趣的游戏编程技巧,它们可以使你的手机游戏获得更好的性能。你还学习了如何创建和管理一个存储在手机中的最高得分记录。本书的这一部分引导你设计和开发了另外一个完整的游戏Space Out,这是一个太空设计游戏,它用到了你在本书中学到的很多 知识。
你需要什么
本书假设你具备和理解一些Java编程语言的知识。我确实并不依赖任何复杂的Java编程结构,因此,你只需要对Java有一个基本的理解就够了。如果你对Java比较生疏,可以阅读随书光盘中的Java教程来复习一下。本书并不需要你有移动Java编程的任何知识,因此,如果你没有接触过支持Java的手机,也不必担心。
本书中的所有例子都可以在随书光盘中找到,包括通过命令行提示来使用J2ME Wireless Toolkit的命令行工具来生成和运行这些例子所需的批处理文件。随书光盘中还包括J2ME Wireless Toolkit。我在本书中好几次提到,你可能会发现J2ME Wireless Toolkit所带的KToolbar可视化工具对于构建和测试事例非常有用。所有的这些例子都设计成便于在KToolbar中打开、编译和模拟的形式。
除了一些Java知识,你只需要思路开阔并且有的一点超越本书之外的创造性。当你开始在手机游戏开发世界漫游的时候,这两点是很有用的。如果你在开发旅途中迷路了,请通过http://www.michaelmorrison.com/联络我,你可能会在本书的论坛上找到一些帮助。尽情阅读吧!