扫描二维码,下载手机APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:2698585038

Java 2D游戏编程入门

综合评级:
★★★★★

定价:
¥79.00

作者:
[美]Timothy Wright 莱特 著

出版社:
人民邮电出版社

出版日期:
2015年7月

页数:
549

字数:
672000

ISBN:
9787115392770

书籍介绍

学习2D游戏开发基础,是快速积累游戏开发经验的关键。理解了2D环境的要素,将能够为游戏开发打下坚实的基础。

本书讲解使用java进行2D游戏开发的基础知识和基本技能。本书共18章,分为基础知识、提高技能和完整游戏3个部分,详细介绍应用编程、全屏游戏、输入处理、矩阵变换、基础物理、相交测试、碰撞检测等知识点和技能,最后采用介绍的所有概念,从头到尾开发了一款完整的游戏。

本书适合游戏开发的初学者阅读,尤其适合想要学习2D游戏编程基础的任何人。本书假设读者理解核心编程概念、面向对象软件以及Java编程语言,但不需要读者具备任何游戏编程的知识。

作者简介

Timothy M. Wright是一名软件工程师,正在开发下一个美妙的独立游戏。最近10年,他都在公司的研发部门工作。此前,他是一位专业的音乐家。他获得了软件工程的学士学位,并且从事了很多年的研究和开发工作。他编写Java代码有10年以上的时间,并且之前在gamedev.net上发布了教程。在不开发游戏的时候,他喜欢钢琴爵士乐、打扑克、烹饪和酿造啤酒。

目录

第一部分 基础知识 1

第1章Hello World 1

1.1使用FrameRate类 1

1.2创建Hello World应用程序 2

1.3使用主动渲染 4

1.4创建定制的渲染线程 6

1.5创建一个主动渲染的窗口 9

1.6修改显示模式 11

1.7全屏显示模式中的主动渲染 15

1.8资源和延伸阅读 18

第2章 18

2.1处理键盘输入 19

2.2键盘改进 23

2.3处理鼠标输入 25

2.4相对鼠标移动 33

2.5资源和延伸阅读 41

第3章变换 41

3.1使用Vector2f类 42

3.2使用极坐标 50

3.3理解点和向量 55

3.4使用矩阵变换 57

3.5行主序矩阵和列主序矩阵 58

3.6理解Matrix3x3f类 59

3.7仿射变换 70

3.8资料和延伸阅读 72

第4章 时间和空间 72

4.1计算时间增量 72

4.2屏幕映射 78

4.3调整视口高宽比 84

4.4大炮实例 90

4.6资料和延伸阅读 96

第5章 简单游戏框架 96

5.1屏幕到世界的转换 96

5.2理解简单框架 98

5.3使用简单框架模板 104

5.4资源和延伸阅读 106

第6章Vector2f更新 106

6.1 inv( ) 106

6.2add( ) 107

6.3sub( ) 107

6.4mul( ) 107

6.5div( ) 108

6.6len( )和lenSqr( ) 108

6.7norm( ) 108

6.8perp( ) 109

6.9dot( ) 109

6.10angle( ) 110

6.11polar( ) 110

6.12toString( ) 110

6.12资源和延伸阅读 113

第7章 相交测试 113

7.1多边形中的点的测试 113

7.1.1多边形特例中的点 115

7.1.2多边形示例中的点 116

7.2使用轴对齐边界框进行相交测试 120

7.3使用圆形测试相交 121

圆和AABB的重合 122

7.4使用分隔轴方法 129

7.5使用线段-线段的重叠方法 130

7.6使用矩形-矩形的重叠方法 133

7.7优化测试 137

7.8资源和延伸阅读 137

第8章 游戏原型 138

8.1创建一个多边形包装类 138

8.2创建一个原型小行星 145

8.3创建一个原型编辑器 149

8.4用原型小行星工厂生产小行星 153

8.5原型Bullet类 159

8.6原型Ship类 160

8.7编写原型游戏 165

第9章文件和资源 172

9.1理解java如何处理文件和目录 172

9.2理解输入/输出流 174

9.3创建Resources.jar文件进行测试 179

9.4将资源放到类路径上 181

9.5制作资源加载工具包 184

9.6利用Java属性 186

9.7XML文件概览 191

9.8资源和延伸阅读 199

第10章图像 199

10.1学习Java中的颜色 199

10.2了解不同的图像类型 200

10.3执行颜色插值 205

10.4使用VolatileImage提高速度 209

10.5创建透明图像 213

10.6使用alpha合成的规则 215

10.7绘制精灵 222

10.8探索不同的缩放算法 231

10.9资源与延伸阅读 246

第11章文本 246

11.1理解Java字体 247

11.2制作绘制字符串工具 251

11.3使用文本度量进行布局 254

11.4支持线程安全的键盘输入 265

11.5资源和延伸阅读 271

第12章 线程 271

12.1使用线程实现Callable任务 272

12.2使用线程加载文件 274

12.3使用FakeHardware类测试 277

12.4使用等待/通知方法 281

12.5在游戏循环中使用线程 283

12.6使用状态机 291

12.7 OneShotEvent类 292

12.8LoopEvent类 294

12.9RestartEvent类 296

12.10多线程事件示例 299

12.11资源和延伸阅读 301

第13章声音 301

13.1操作声音文件 303

13.2使用声音库的问题 304

13.3开发阻塞音频类 308

13.4用阻塞的Clip类 310

13.5使用AudioDataLine类 314

13.6BlockingDataLine类 320

13.7创建一个SoundEvent类 322

13.8使用OneShotEvent类 324

13.9使用LoopEvent类 325

13.10使用RestartEvent类 326

13.11添加声音控件 331

13.12资源和延伸阅读 339

第14章用ANT进行开发 339

14.1安装ANT软件 340

14.2理解构建脚本的格式 340

14.3学习常见ANT任务 343

14.4构建一个可扩展的构建脚本 345

14.5资源和延伸阅读 350

第15章碰撞检测 351

15.1带碰撞检测的弹球 351

15.2使用直线参数方程 355

15.3查找直线-矩形相交 356

15.4查找圆-直线相交 362

15.5查找直线-直线相交 367

15.6计算一个反射向量 372

15.7在一个多边形中弹回一个点 375

15.8资源和延伸阅读 381

第16章工具 382

16.1创建一个游戏框架 382

16.2更新多边形编辑器 394

16.3绘制精灵 408

16.4创建一个简单的粒子引擎 411

16.5资源和延伸阅读 416

第17章太空火箭 416

17.1 Bullet类 417

17.2PolygonWrapper类 418

17.3Particle类 421

17.4Asteroid类 422

17.5AsteroidFactory类 425

17.6AsteroidExplosion类 428

17.7Ship类 430

17.8ShipFactory类 435

17.9ShipExplosion类 437

17.10添加游戏常量 438

17.11Acme类 439

17.12GameState类 440

17.13Score类 441

17.14QuickLooper类 441

17.15QuickRestart类 443

17.16HighScoreMgr类 445

17.17管理状态 448

17.18StateController类 449

17.19CompleteGame类 450

17.20GameLoading状态 453

17.21AttractState类 458

17.22PressSpaceToPlay模式 461

17.23HighScore状态 461

17.24GameInformationState类 462

17.25LevelStarting状态 463

17.26LevelPlaying状态 464

17.27GameOver状态 470

17.28EnterHighScoreName状态 471

17.29创建构建脚本 476

17.30资源和延伸阅读 477

.....