Java游戏编程PDF电子书下载
- 电子书积分:19 积分如何计算积分?
- 作 者:(美)David Brackeen著;邱仲潘译
- 出 版 社:北京:科学出版社
- 出版年份:2004
- ISBN:7030129423
- 页数:663 页
第一部分 Java游戏基础 1
第1章 Java线程 1
1.1 什么是线程 1
目录 1
1.2 在Java中生成与运行线程 2
1.2.1 扩展Thread类 2
1.2.2 实现Runnable接口 3
1.2.3 使用匿名内类 3
1.2.4 等待线程完成 3
1.2.5 休眠线程 3
1.3.1 为什么要同步 4
1.3.2 如何同步 4
1.3 同步 4
1.3.3 同步是什么 5
1.3.4 不同步是什么 6
1.3.5 避免死锁 6
1.4 使用wait()与notify() 7
1.5 Java事件模型 8
1.6 何时使用线程 8
1.7 何时不使用线程 8
1.8 线程池 8
1.9 小结 14
第2章 二维图形与动画 15
2.1 全屏图形 15
2.1.1 屏幕布局 15
2.1.2 像素颜色与位深度 16
2.1.3 刷新率 17
2.1.4 将显示切换到全屏方式 17
2.1.5 抗齿边 21
2.1.6 选用显示方式 22
2.2 图像 23
2.2.1 透明度 23
2.2.2 文件格式 23
2.2.3 读取图像 24
2.2.4 硬件加速图像 27
2.2.5 图形绘制基准程序 28
2.2.6 动画 32
2.2.8 动画循环 36
2.2.7 活动绘制 36
2.3 避免闪烁与裂开 39
2.3.1 双缓存 40
2.3.2 翻页 41
2.3.3 监视刷新与裂开 42
2.3.4 BufferStrategy类 42
2.3.5 生成屏幕管理器 43
2.3.6 幽灵 52
2.4 简单效果 59
2.5 小结 65
第3章 交互性与用户界面 66
3.1 AWT事件模型 69
3.2 键盘输入 70
3.3 鼠标输入 74
3.4 通过鼠标移动的观看模式 78
3.5 创建输入管理器 84
3.6 使用输入管理器 97
3.6.1 暂停游戏 97
3.6.2 增加重力 98
3.7 设计直观用户界面 105
3.8 使用Swing组件 106
3.8.1 Swing基础 106
3.8.2 在全屏方式中使用Swing 107
3.9 创建简单菜单 109
3.10 让游戏者配置键盘 115
3.11 小结 122
4.1 声音基础 123
第4章 声效与音乐 123
4.2 Java Sound API 124
4.2.1 打开声音文件 124
4.2.2 使用Line 124
4.3 播放声音 125
4.4 创建实时声音过滤体系结构 131
4.5 创建实时回响过滤 135
4.6 仿真三维声音 139
4.6.1 生成三维过滤器的思路 139
4.6.2 实现三维过滤器 140
4.6.4 测试三维过滤器 143
4.7 创建声音管理器 147
4.7.1 Sound类 147
4.7.2 SoundManager类 148
4.7.3 线程局部变量 157
4.8 播放音乐 158
4.8.1 播放光盘声频 158
4.8.2 播放MP3与Ogg Vorbis 159
4.8.3 播放MIDI音乐 159
4.8.4 生成适配音乐 163
4.9 小结 166
第5章 创建二维平台游戏 167
5.1 生成基于地砖的地图 167
5.1.1 实现Tile地图 168
5.1.2 读取Tile地图 172
5.1.3 绘制Tile地图 175
5.1.4 绘制幽灵 176
5.1.5 视差滚动 177
5.1.6 充电器 179
5.1.7 简单坏人 181
5.2 碰撞探测 190
5.2.1 探测碰撞 190
5.2.2 处理碰撞 191
5.2.3 幽灵碰撞 194
5.3 完成与加速 196
5.4 生成可执行的.jar文件 196
5.5 扩展游戏 197
5.6 小结 198
第6章 多人游戏 199
6.1 Java I/O库的变革 200
6.1.2 信道 201
6.1.1 JDK 1.4 NIO库的概述 201
6.1.3 缓存 203
6.1.4 选择器与SelectionKeys 205
6.2 基本多方游戏应用程序 206
6.2.1 服务器端 206
6.2.2 建立与运行服务器 212
6.2.3 客户端 214
6.2.4 建立与运行客户机 215
6.3 多方游戏服务器框架 215
6.3.1 设计目标与战术 215
6.3.2 设计 216
6.3.3 共用类与接口 219
6.3.4 服务器实现 221
6.3.5 客户机 229
6.4 RPS游戏(石头、布、剪刀) 230
6.4.1 类 230
6.4.2 运行RPS游戏 233
6.5 建立框架 235
6.5.1 客户机GUI 235
6.5.2 持久性 235
6.5.3 伙伴名单、门厅与闲聊 235
6.6 服务器管理 236
6.6.1 登记 236
6.6.2 启动/关闭 236
6.6.3 服务器管理控制台 237
6.7.1 切断与重接 238
6.7 高级课题 238
6.6.4 游戏监查 238
6.7.2 HTTP隧道 239
6.7.3 量化测试 240
6.7.4 Modem连接 241
6.7.5 性能剖析与统计 241
6.7.6 性能调整 242
6.8 小结 244
第二部分 三维图形与高级技术 245
第7章 三维图形 245
7.1 三维绘制的类型 246
7.2 回顾曾经学过的数学 246
7.2.2 向量数学 247
7.2.1 三角学和直角三角形 247
7.3 3D的基础 252
7.4 3D的数学 254
7.5 多边形 259
7.6 三维变换 262
7.6.1 旋转 263
7.6.2 包装旋转和平移变换 264
7.6.3 采用变换 268
7.6.4 旋转顺序 270
7.7 3D的简单管道 270
7.8 镜头移动 275
7.9 实体和背面删除 275
7.9.1 点积 276
7.9.2 交积 277
7.9.3 再谈点积和交积 279
7.10 扫描转换多边形 280
7.11 三维剪取 288
7.12 最后绘制管道 291
7.13 小结 299
第8章 纹理贴图与照明 301
8.1 透视正确纹理贴图的基础 301
8.2 简单纹理贴图器 305
8.3 优化纹理贴图 314
8.3.1 纹理的存储格式 315
8.3.2 原始优化 319
8.3.3 内联方法 322
8.3.4 快速纹理贴图演示程序 323
8.4 简单灯光 324
8.4.3 光源强度 325
8.4.4 距离减弱 325
8.4.1 扩散反射 325
8.4.2 环境光 325
8.4.5 实现点光源 326
8.5 实现纹理照明 327
8.6 使用阴影图的高级照明 334
8.6.1 求出边界矩形 335
8.6.2 采用色档图 337
8.6.3 建立色档图 338
8.6.4 建立表面 341
8.6.5 缓存表面 344
8.6.6 阴影表面演示程序 351
8.7.4 双线性插值 352
8.7.3 MIP贴图 352
8.7.5 三线性插值 352
8.7 其他概念 352
8.7.2 伪阴影 352
8.7.1 深度提示 352
8.7.6 法线图与深度 353
8.7.7 其他类型的光 353
8.8 小结 353
第9章 三维对象 354
9.1 表面消隐 354
9.1.1 油画算法 354
9.1.2 反油画算法 355
9.1.3 Z缓存 355
9.1.4 使用1/Z的Z缓存 356
9.1.5 计算Z深度 359
9.2 三维动画 360
9.2.1 空间运动 362
9.2.2 角度运动 364
9.3 多边形组 369
9.4 从OBJ文件装入多边形组 375
9.4.1 OBJ文件格式 375
9.4.2 MTL文件格式 382
9.5 游戏实体 384
9.6 管理游戏实体 387
9.7 综合起来 389
9.8 改进 396
9.9 小结 397
10.1 BSP树简介 398
第10章 用BSP树管理三维视景 398
10.2 二叉树基础 399
10.3 一维BSP树 401
10.4 二维BSP树 403
10.4.1 建立BSP树 404
10.4.2 BSP树遍历实例 406
10.5 实现二维BSP树 407
10.5.1 BSP Line 409
10.5.2 确定点相对于直线的边 409
10.5.3 BSP多边形 413
10.5.4 遍历BSP树 413
10.5.5 中序遍历 415
10.5.6 由前到后遍历 416
10.5.7 树的建立 417
10.5.8 两条线求交 421
10.5.9 用直线剪取多边形 423
10.5.10 删除T形接头 426
10.5.11 测试BSP树 427
10.6 从前到后画多边形 429
10.7 第一个BSP树例子 438
10.8 在视景中画实体 439
10.9 从文中装入贴图 440
10.10 综合起来 444
10.11 改进 445
10.12 小结 446
11.1 碰撞基础 447
第11章 碰撞探测 447
11.2 实体间碰撞 448
11.2.1 减少测试 448
11.2.2 边框球 450
11.2.3 边框圆柱 452
11.2.4 离散时间问题 454
11.3 实体与世界碰撞 455
11.3.1 测试地板的边框 455
11.3.2 寻找特定位置的BSP叶 456
11.3.3 实现地板和天花板高度测试 457
11.3.4 测试墙的边框 459
11.3.5 BSP树的线段交点 460
11.3.7 实现实体/世界碰撞探测 464
11.3.6 角问题 464
11.4 基本碰撞探测演示程序 467
11.5 滑动与碰撞处理 467
11.5.1 实体间滑动 468
11.5.2 实体沿墙的滑动 470
11.5.3 重力与爬楼梯(实体沿地 473
面滑动) 473
11.5.4 实现跳动 476
11.6 碰撞探测与滑动演示程序 477
11.7 改进 477
11.8 小结 477
第12章 路径搜索 478
12.1 路径寻找基础 478
12.2 初步路径寻找方法 478
12.3 A*算法基础 482
12.4 采用A*算法 487
12.5 BSP树与A*算法 487
12.5.1 门户 488
12.5.2 实现门户 489
12.6 一般性路径寻找 493
12.7 建立PathBot 496
12.8 改进A*搜索 500
12.9 小结 500
第13章 人工智能 502
13.1 人工智能基础 502
13.2 减少Bot的神力 503
13.2.1 视觉 503
13.2.2 听觉 505
13.3 状态机与响应 507
13.4 概率机 509
13.5 决策 512
13.6 模式 513
13.6.1 躲避 514
13.6.2 攻击 517
13.6.3 跑开 519
13.6.4 瞄准 520
13.6.5 射击 521
13.7 实体派生 522
13.8 综合起来 523
13.8.1 大脑 523
13.8.2 健康与死亡 524
13.9.1 再生 532
13.9 进化 532
13.9.2 进化Bot 534
13.9.3 演示改进 538
13.10 进化 538
13.11 小结 539
第14章 游戏脚本 540
14.1 关于脚本 540
14.2 实现接触与释放通知 541
14.3 游戏实体监听器 544
14.4 脚本 548
14.4.1 设计脚本 549
14.4.2 嵌入BeanShell解释器 551
14.5 延迟事件 556
14.6 综合起来 560
14.7 改进 562
14.8 小结 563
第15章 保存游戏 564
15.1 游戏保存基础 564
15.2 对游戏状态保存使用Java序列化API 565
15.2.1 序列化简介 565
15.2.2 序列化基础 565
15.2.3 序列化规则 567
15.2.4 序列化问题 570
15.2.5 覆盖缺省行为 573
15.3 生成游戏屏幕图形 577
15.3.1 生成屏幕略图图形 579
15.3.2 保存图形 579
15.4 将游戏保存到正确目的地 581
15.5 小结 582
第三部分 调整与完成游戏 583
第16章 优化技术 583
16.1 优化规则 583
16.2 剖析 584
16.2.1 基准测试 584
16.2.2 使用HotSpot剖析器 584
16.3 HotSpot 588
16.3.1 Java特定优化 589
16.3.2 死亡代码消除 589
16.3.3 循环不变项提升 589
16.3.6 内联方法 590
16.3.5 常量传递 590
16.3.4 公共子表达式消除 590
16.4 优化技巧 591
16.4.1 算法 591
16.4.2 移位 592
16.4.3 求模 593
16.4.4 乘法 593
16.4.5 指数 593
16.4.6 更多循环不变项提升 594
16.4.7 查找表 594
16.4.8 定点算术 597
16.4.9 异常 597
16.4.10 输入/输出 597
16.5 内存使用与回收 598
16.4.11 内存贴图文件 598
16.5.1 Java堆与内存回收 599
16.5.2 监视内存回收 599
16.5.3 监视内存使用 600
16.5.4 调整堆 604
16.5.5 调用内存回收单元 605
16.5.6 减少对象生成 605
16.5.7 对象复用 605
16.5.8 对象池 606
16.6 感觉性能 606
16.7 小结 611
17.1 选择外观 613
17.1.1 寻找灵感 613
第17章 生成游戏图形与声音 613
17.1.2 保持一致 614
17.2 取得自由版权游戏媒体 614
17.3 与艺术家和声效工程师合作 615
17.4 工具 615
17.5 生成声音 615
17.6 生成纹理与幽灵 616
17.6.1 图形文件格式 617
17.6.2 生成无缝纹理 617
17.6.3 生成替换纹理 618
17.6.4 生成过渡纹理 619
17.6.5 生成多层纹理 620
17.7 生成漂亮屏幕与HUD图形 621
17.8 生成UI图形 621
17.9 生成字体 622
17.10 小结 628
第18章 游戏设计与最后10% 629
18.1 最后10% 629
18.1.1 效果 630
18.1.2 游戏状态机 630
18.2 游戏设计要素 636
18.2.1 环境 636
18.2.2 故事要素 637
18.2.3 玩游戏 638
18.2.4 告诉用户怎么玩 639
18.3 生成贴图编辑器 639
18.4 调试 640
18.4.1 调试Java2D问题 642
18.4.2 日志 643
18.5 保护代码 644
18.6 游戏部署 645
18.7 Java Web Start游戏部署 646
18.7.1 从jar文件取得资源 646
18.7.2 签名jar文件 647
18.7.3 生成JNLP文件 647
18.7.4 设置Web服务器 649
18.8 自然编译游戏部署 650
18.9 更新与补丁 650
18.10 带宽问题 651
18.11 反馈与Beta测试 651
18.13 综合起来 652
18.12 赚钱 652
18.14 小结 653
第19章 未来 654
19.1 Java的演变 654
19.1.1 Java社团 654
19.1.2 缺陷天堂(Bug Parade) 654
19.2 Java 1.5(Tiger) 655
19.2.1 一般(JSR 14) 655
19.2.2 枚举(JSR 201) 656
19.2.3 静态导入(JSR 201) 657
19.2.4 改进for循环(JSR 201) 657
19.3.1 更多鼠标与键盘输入选项 658
19.3 Java平台需要什么 658
19.2.7 共享虚拟机(JSR 121) 658
19.2.6 网络传输格式(JSR 200) 658
19.2.5 编译器API(JSR 199) 658
19.3.2 游戏杆输入 659
19.3.3 硬件加速半透明图像 659
19.3.4 高精度定时器 659
19.3.5 Linux中的硬件加速图形和全屏方式 660
19.3.6 运行环境中的硬件加速三维 660
特性 660
19.3.7 HotSpot SIMD优化 660
19.3.8 更多字体光顺选项 661
19.3.9 其他情况 662
19.4 新设备与Java Games Profile 662
(JSR 134) 662
19.5 小结 663
- 《幼儿园游戏 规则性游戏》徐仁吉编 1951
- 《幼儿英语游戏活动指导与实训》苏小菊,任晓琴主编;颜晓芳,覃静,谢恬恬,钟博维副主编 2020
- 《近代体育游戏教育史料汇编 第1辑 1》王强主编 2016
- 《花样民游 幼儿园民间传统游戏的创新与指导》刘娟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《近代体育游戏教育史料汇编 第2辑 2》王强主编 2016
- 《近代体育游戏教育史料汇编 第1辑 6》王强主编 2016
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《近代体育游戏教育史料汇编 第2辑 3》王强主编 2016
- 《近代体育游戏教育史料汇编 第2辑 8》王强主编 2016
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《《走近科学》精选丛书 中国UFO悬案调查》郭之文 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《中医骨伤科学》赵文海,张俐,温建民著 2017
- 《美国小学分级阅读 二级D 地球科学&物质科学》本书编委会 2016
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《强磁场下的基础科学问题》中国科学院编 2020
- 《小牛顿科学故事馆 进化论的故事》小牛顿科学教育公司编辑团队 2018
- 《小牛顿科学故事馆 医学的故事》小牛顿科学教育公司编辑团队 2018
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019