作者:empty 页数:561 出版社:empty |
本书全面讲述了使用Java语言进行游戏编程所需的基本知识。涵盖了Orphics2D、声音、图像、冲突检测、硬件加速、场景管理以及游戏引的开发等主题。本书是游戏开发经典丛书系列之一,适合游戏开发人员、业余游戏软件开发爱好者和有关游戏软件开发培训使用,也可以作为大专校相关专业的参考书。
这是一本讲解游戏编程的书。这是一本讲解Java应用的书。准确地说, 这是一本讲解
如何将Java技术运用于游戏编程的书,的基本技术:Graphics 2D、声音、图像、冲突检测、硬件加速、场景管理以及游戏引擎的开发等。作者循循善诱地把Java语言的要点和游戏编程的各个主题讲解得清楚而透彻。对于那些对Java编程或者游戏技术感兴趣的读者来说, 本书是一本难得的教材; 对于那些有C/C++编程经验的游戏开发者,通过阅读本书也可以延伸自己的知识和技能。此外,作者文笔老练,语言风趣,阅读起来令人兴致盎然。本书在亚马逊网上书店被很多读者给予4为本书的翻译提供了很多帮助,在此向他们表示衷心的感谢!妥之处在所难免,恳请读者批评指正。
任何固执地认为Java不能应用于游戏编程的人, 在看到作者独具匠心的游戏创作之后,这本书真正做到了深入浅出。它从Java编程基本知识讲起, 涵盖了游戏编程几乎全部本书主要由晏利斌、孙淑敏和邵荣翻译,还有很多IT界的朋友、译者的同学、老师等译者尽心尽力,只求不使原书因为翻译而失色过多,但由于时间仓促和水平所限,不
关于作者首先我想对And re LaMothe在过去几年中的友谊和指导表示感谢。在我对包括游戏编我还要感谢我的父母:Gloria和Tom, 他们供给我电脑和游戏设备, 甚至在我6岁时我的恋人Megan, 一直是我灵感的来源。在我遇到不能确定的事情时, 她总在我身旁,当然, Jody Kennen、Emi Smith、Estelle Mantic as、Laura Gabler和在Premier Press的最后, 我想对Coast-to-Coast AM节目的主持人Art Bell(和周末的Ian Punnett) 道谢,哦, 对了, 还有Sun微系统公司的人们——Java的开发者。我想我还得感谢他们, 没不知Thomas Petch el来自何处, 不过他并不是电子游戏世界的新手。12岁时, 他就在现在, 刚刚获得Shippensburg大学计算机科学学士学位的Tom是Wizard Inte mational丛书编辑的话对于编写游戏而言, Java终于变得足够成熟了。它现在是一种开发能够在多种平台上Java并不是以游戏编程为目的而被开发的, 事实上, 游戏编程可能是Java创造者心中《Java 2游戏编程》将向读者展示怎样用Java语言和它的类库创建2D游戏, 所涉及的那么本书究竟是关于什么的呢?本书的主题实际上是如何用Java语言创作游戏以及怎程在内的所有事情需要帮助时,他总是伸出援助之手,很令人惊奇的是,他做了很多的事情来帮助业余的游戏开发爱好者进入这个行业。我在Xtreme Games的实习是令人难以置信的,开始时我们的目标只是为这个网站编写一些共享游戏,但是到实习结束时,我在这个网站上已拥有了一个完整的3D游戏,并且获得了撰写本书的合同。如果没有他(和很多咖啡)的支持,这些都是不可能的。就给我买了第一台Commodore 64。他们没有强迫我学棒球或者上游泳课程, 而是让我做自己想做的事情,比如学习空手道和玩电子游戏。他们总是教导我:学会独立是生活中最重要的事情。告诉我她的看法。如果没有她,我真不知道怎样在学校、工作和多个项目混杂在一起的疯狂生活中保持心智清醒。其他幕后工作的人都在这本书的写作过程中做了很多事情,是他们使得这本书的写作成为一个比较顺利而且毫不痛苦的过程。他们关于那些怪异事情的讨论,比如影子人和51号地区等,陪伴我度过了写这本书时的很多个夜晚。有他们的话我什么都写不出来!一个战略电子游戏比赛中, 成功地完成了300场游戏(大部分是最初的8位NES) .如果还有照片来作证的话,可能这会给人更深刻的印象。对面向对象编程的爱好使得他很自然地以Java为首选语言。2000年在Xtreme Games实习期间, Tom成功地发布了他的第一款名为Mahjongg Empire的电子游戏。在2000年加州Santa Clare举办的Xtreme Games开发者大会(X GDC) 上, Tom做了题为《Java游戏编程导论》的演讲,公司的软件开发者.在这里, 他奋斗在图像创作软件的最前沿。他和他的未婚妻Megan以及两只小猫Simon和Roxanne一起住在西雅图郊区, Tom对于未来的计划是做计算机科学历史上最出色的软件开发者。不管能否成功, Tom都打算继续为开发那些能给明天的大众带来娱乐,并有可能提高他们生活质量的软件而工作,运行的中小型游戏的很好的方式。此外, Java支持和其他的库一起工作, 而且它的速度变得越来越快。的最后一个目标。在过去, 妨碍Java发展的是它的运行环境:浏览器和Java类库一起从本质上决定了Java应该用来写哪种类型的应用程序, 而高速的游戏和图像则不在其中。这给Java带来了不好的影响, 因为人们注意的不是语言, 而是它运行的环境。现在, 浏览器已经不能控制一切了, Java作为游戏编程语言的另一个机会到来了。Java在过去有一点超前于它的时代, 当时市场的动力落后于Java, 但是现在Java可以而且已经取得成功。主题包括高速性能、双缓冲图像、动画、声音、媒体控制、IO和网络支持等。Tom Petch el有着独特的背景:他最初是一名C/C++游戏开发者, 用DirectX和Direct 3D制作了PC上的各种2D和3D游戏, 这表明他不是Java的盲目崇拜者, 那些人认为Java是世界上最伟大的事物(尽管他们从来没有用C/C++写过真正的游戏) , Tom却是合理地受到Java的影响而在游戏编程中使用Java的。当C/C++游戏开发者向Java转变并且真正喜欢它时, 那是对Java语言的最大支持。样用Java的方式思考。虽然, 作为一门语言, Java和C++很相似, 但是Java在面向对象上最彻底:它的一切都是对象,这一点需要很多时间来适应。指针和内存管理模型的消失也是这样。《Java 2游戏编程》有一个对Java编程的初级介绍使读者上路, 所以, 即使是C/C++开发者也可以拿起这本书并从中获益。介绍完基本知识后,本书开始讨论基本图形图像,作者OP
Java 2游戏编程接着是动画和网络,最后是游戏相关的主题。作者编写本书的主要目的是给读者一个以Java方式来做事情的坚实基础, 并演示怎样正确地处理它们.Tom的代码令人印象深刻——他真正理解Java, 知道怎样恰当地使用它·如果按照他的例子,除了学习图像图形、声音和网络概念外,还使用它的技巧,那么,你将得到良好的发展。书中有很多代码,也有很多示例,还有一些确实很好的演示,而且,Tom使书中的代码和例子更通用, 所以它们可以直接与Sun的Java运行库以及applet浏览器一起运行, 这意味着无须浏览器和集成开发环境(IDE) 。机只是为了使得自己可以在万维网上冲浪, 或者可以与朋友及家人通过E-mail联系。用户的增长,以及现代硬件和软件能力的指数级提升,已经开辟了个人计算机时代结束和网络如果你确实对Java平台的游戏开发和图形图像感兴趣, 那么本书适合你。时代开始之间的一个灰色区域。谁应该阅读这本书
序言如今,“因特网”一词事实上已经和“计算机”成了同义词,越来越多的人使用计算因特网的计算机文化毫无疑问给我们的生活带来了超出想象的冲击,我们中的大多数人每天都浏览网络以获取信息和新闻,我们中的一部分人使用因特网来进行学术研究,还有一些人使用网络传播病毒或者攻击公司网站,以此来发泄自己的不满并给别人带来灾难。对于笔者而言,网络的魔力在于它给人提供了体验在线游戏的机会,计算机编程既是一门艺术又是一门科学。要把一个想法变为一个完全的产品,需要严如果符合下列条件之一,那么你应该买本书:电子游戏产业是一个每年可以产生数十亿美元产值的产业,其中大部分来自于家用游戏机和压缩包装型PC游戏。我深信在线游戏在很大程度上还是一个未被发掘的市场-这非常有趣,因为它给了所有人在计算机游戏中开发“下一个重要事物”的很好的机会,不管它是一种适合在线玩的新游戏类型,还是一种帮助现有在线游戏赚钱的新的市场模式,这中间都充满了机遇。即使不能成为下一个有数亿美元身价的多媒体大亨,在游戏产业中你依然有很多的机会一举成名。请记住, 由于Java游戏一般来说简单而有趣, 并且对用户硬件要求极小, 所以Java游戏通常对于85%的计算机用户都有吸引力, 这些人一般不是纯粹的铁杆游戏玩家。可以利用这个事实把你的游戏传播给所有类型的玩家而不仅是铁杆玩家。不管是喜欢向朋友炫耀作品的痴迷程序开发者,还是正在探求利用因特网的优越性在游戏产业边缘创造财富的老练专家, 本书将向你展示如何使用Java语言来开发稳健的、柔性的游戏程序。你准备把你的技术提升到更高的一个档次吗?继续阅读,或许你会成为写出下一个“杀手级游戏”的人,密性,也需要创造力。我相信对任何人来说,只要他会一些计算机技术,就具备了成为一名程序员的能力。问题在于:你有成为一名计算机程序员的兴趣吗?请拿起本书,告诉我你确实有兴趣。但是,你是否应该买本书呢?你对游戏编程感兴趣或者你是一个初级程序员, 并且想在应用Java语言创造刺激的因特网游戏方面登堂入室。
第1篇
1.3.1步入Java丛林:从Java2API开始
第1章Java 2软件开发工具包.
1.1Java简史.
1.2为什么在游戏中使用Java.
1.3为Java准备系统.
1.4总结.
2.1 Game Over!程序.
2.2比特和字节:原始的Java类型.
安装Java SDK.
1.3.2编译和运行Java程序.
1.3.3使用命令行.
1.3.5关于Java 2文档的说明.
2.1.1 import语句.
2.1.2给Java代码加注释.
2.1.3Java类声明.
2.1.4Java方法声明.
2.1.5Java中的代码块.
2.1.6Java程序组成部分的关键点回顾.
2.2.2浮点类型.
2.2.3Char类型.
2.2.4布尔型.
2.2.5 String类型.
2.2.6强制转换变量类型.
2.5.3关于流程控制语句的记忆要点.
3.3.1构造函数方法.
3.3.2访问方法.
3.3.3类方法.
4.1.1java.lang.Objec.
4.1.2java.lang.String.
使用集成开发环境(IDE) .
基本的整数类型.
使用try和catch块.
使用throws子句.
“其他”方法.
第2章预备:学习Java2API.
第3章
第4章
2.2.7Java数据类型、数组和标识符需要记忆的要点.
Java中的运算符.
2.3.1赋值运算符.
2.3.2比较运算符.
2.3.3算术运算符.
2.3.4自增和自减运算符.
2.3.5更多的整数运算符.
.2.3.6使用点运算符.
2.3.7 instance of运算符.
2.3.8优先级顺序.
2.3.9关于运算符的记忆要点.
条件语句.
2.4.1switch语句.
2.4.2Java中的循环语句.
2.4.3用break、continue和return提前退出循环.
2.5处理运行时异常.
2.6总结.
2.7练习.
带有类的语言:Java面向对象程序设计.
3.1设计一个Java类.
3.2方法的魔法.
3.3关于方法的更多话题.
3.4继承.
3.5抽象类.
3.6类修饰符.
3.7接口.
3.8快捷地创建类.
3.9包.
3.10总结.
3.11
练习.
Java API为你服务:常用Java类.
4.1java.lang包.
Java 2游戏编程
4.1.3java.lang.StringBuffer.
4.1.4封装类.
4.1.5java.lang.Math.
4.1.6java.lang.System.
4.1.7java.lang.Cloneable.
4.1.8java.lang.Thread.
4.3.1java.util.StringTokenizer.
4.3.2java.util.Random.
4.3.3Java 2集合框架.
5.6.1按钮.
5.6.3作出重要选择.
5.6.4循环播放声音文件.
5.6.6标签.
5.7.1 FlowLayout类.
5.7.2 GridLayout类.
5.7.3 BorderLayout类.
5.7.4 Card Layout类.
6.1.1 MouseListener接口.
6.1.2 Mouse Motion Listener接口.
6.1.4其他的EventListener类.
7.7.2 Basic Stroke类.
7.7.3 Paint接口.
7.8.2衍生字体.
7.8.3获取字体量度.
8.3.1 BufferedImage.
4.2java.io包.
4.3java.util包.
4.4总结.
4.5练习.
第2篇
Applet基础.
5.1什么是Java applet.
6.1.3
7.7.1 Stroke接口.
7.7.4混和处理.
7.8.1创建并画出文本.
8.1.1冲突检测.
8.1.2叠加几何.
8.1.3区域剪裁.
Java 2-D图像开发和抽象Window工具包
单选按钮(RadioButton)
文本域.
Key Listener接口.
5.2 Applet和Application的比较.
5.3Applet的组成和生命周期.
一个Applet例子.
5.5运行Java Applet.
5.6通用AWT组件.
5.7布局管理.
容器(Container) .
5.9创建自定义组件.
5.10一个完整的例子.
5.11总结.
5.12练习.
监听用户.
6.1 EventListener接口.
6.2总结.
6.3练习.
Java 2游戏编程
用Java 2-D来绘制图形、文字和图像(第一部分) .
7.1坐标空间.
7.2Graphics2D类.
使用仿射变换.
绘制形状.
7.5实例建模.
7.6 Image类.
7.7更多的绘制和填充操作.
7.8处理文本.
7.9总结.
7.10练习.
8.1享受几何学的乐趣.
8.2
设置绘制提示.
8.3图像处理.
第8章用Java 2-D来绘制图形、文字和图像(第二部分)
8.3.2使用图像增强处理.
9.3.1创建Buffered Graphics类.
9.3.2通过Volatile Image类使用硬件加速.
10.2.1Actor 2D类的支撑类.
10.2.2使Actor 2D对象动起来.
10.2.3扩展Actor 2D类.
12.2.1Component2D类.
12.2.2Label2D类.
12.2.3Button2D类.
12.2.4RadioButton2D类.
12.2.5创建Container 2D类.
12.2.6Panel2D类.
12.2.7使用Menu2D创建自定义菜单.
使用TCP实现基于连接的网络.
Magic引擎的结构.
8.5练习.
第3篇
面向大众的Java游戏
Java 2游戏编程
-XVI-
第9章2-D动画技术.
第10章
第11章
第12章
第13章
第14章
附录A使用javadoc工具.
9.1使用Media Tracker类来下载内容.
使用图像条进行更快的下载.
9.3创建屏外绘制缓冲器.
9.4使用帧速同步来使动画完美.
9.5总结.
9.6练习.
创建自定义的游戏实体类——Actor 2D.
10.1Actor 2D类的前奏.
10.2Actor2D, 前端和中央.
10.3总结.
10.4练习.
实现一个布景管理系统.
11.1为什么要实现一个布景管理器.
11.2 Scene类.
11.3结论.
11.4练习.
创建自定义的可视化控件和菜单.
12.1为什么要重新发明轮子.
12.2自定义控件概述.
12.3总结.
12.4练习.
和其他人连接:创建客户端/服务器架构.
13.1Java网络编程概述.
13.2基于连接的网络和无连接网络之间的比较.
13.3使用UDP实现无连接网络.
13.4总结.
13.5练习.
Node z!