书籍详情

Java游戏编程

Java游戏编程

作者:(美)David Brackeen著;邱仲潘译;邱仲潘译

出版社:科学出版社

出版时间:2004-06-01

ISBN:9787030129420

定价:¥68.00

购买这本书可以去
内容简介
  Java游戏编程已经在游戏开发中成为重头戏。使用Java的好处是明显的:代码易读易写,而且可以在不同平台上方便快捷地开发。如果你已经有Java编程的经验,而且想涉及游戏编程,那么《Java游戏编程》是不错的选择。本书介绍如何使用Javal.4平台建立快速的全屏动作游戏,如横向卷轴和三维射击程序。介绍的关键特性包括Java游戏编程技术,最新二维图形和声音技术,三维图形和视景管理,路径寻找和人工智能,碰撞探测,使用BeanShell的游戏脚本和多方游戏引擎的生成等。本书主要内容包括:掌握全屏图形与动画、硬件加速图形技术:在游戏中增加人工智能和精彩的多方功能;生成定制鼠标和键盘控制的系统;在全屏游戏中集成Swing用户界面;同时播放多个声音,使用回响、伪三维声音过滤之类的实时声音效果;用BSP树、碰撞探测和脚本生成三维引擎;学习现代Java虚拟机的优化方法。本书面向游戏开发人员及广大游戏编程爱好者,同时,也是大专院校相关专业师生的有力参考。本书配套光盘内容为书中实例源代码。需要本书或需要得到技术支持的读者,请与北京中关村083信箱(邮编100080)发行部联系。电话:010-62528991,62524940,62521921,62521724,82610344,82675588(总机)传真:010-62520573,E-mail:yanmc@bhp.com。cn版权声明
作者简介
暂缺《Java游戏编程》作者简介
目录
第一部分 Java游戏基础
第1章 Java线程
1.1 什么是线程
1.2 在Java中生成与运行线程
1.2.1 扩展Thread类
1.2.2 实现Runnable接口
1.2.3 使用匿名内类
1.2.4 等待线程完成
1.2.5 休眠线程
1.3 同步
1.3.1 为什么要同步
1.3.2 如何同步
1.3.3 同步是什么
1.3.4 不同步是什么
1.3.5 避免死锁
1.4 使用wait()与notify()
1.5 Java事件模型
1.6 何时使用线程
1.7 何时不使用线程
1.8 线程池
1.9 小结
第2章 二维图形与动画
2.1 全屏图形
2.1.1 屏幕布局
2.1.2 像素颜色与位深度
2.1.3 刷新率
2.1.4 将显示切换到全屏方式
2.1.5 抗齿边
2.1.6 选用显示方式
2.2 图像
2.2.1 透明度
2.2.2 文件格式
2.2.3 读取图像
2.2.4 硬件加速图像
2.2.5 图形绘制基准程序
2.2.6 动画
2.2.7 活动绘制
2.2.8 动画循环
2.3 避免闪烁与裂开
2.3.1 双缓存
2.3.2 翻页
2.3.3 监视刷新与裂开
2.3.4 BufferStrategy类
2.3.5 生成屏幕管理器
2.3.6 幽灵
2.4 简单效果
2.5 小结
第3章 交互性与用户界面
3.1 AWT事件模型
3.2 键盘输入
3.3 鼠标输入
3.4 通过鼠标移动的观看模式
3.5 创建输入管理器
3.6 使用输入管理器
3.6.1 暂停游戏
3.6.2 增加重力
3.7 设计直观用户界面
3.8 使用Swing组件
3.8.1 Swing基础
3.8.2 在全屏方式中使用Swing
3.9 创建简单菜单
3.10 让游戏者配置键盘
3.11 小结
第4章 声效与音乐
4.1 声音基础
4.2 Java Sound API
4.2.1 打开声音文件
4.2.2 使用Line
4.3 播放声音
4.4 创建实时声音过滤体系结构
4.5 创建实时回响过滤
4.6 仿真三维声音
4.6.1 生成三维过滤器的思路
4.6.2 实现三维过滤器
4.6.4 测试三维过滤器
4.7 创建声音管理器
4.7.1 Sound类
4.7.2 SoundManager类
4.7.3 线程局部变量
4.8 播放音乐
4.8.1 播放光盘声频
4.8.2 播放MP3与Ogg Vorbis
4.8.3 播放MIDI音乐
4.8.4 生成适配音乐
4.9 小结
第5章 创建二维平台游戏
5.1 生成基于地砖的地图
5.1.1 实现Tile地图
5.1.2 读取Tile地图
5.1.3 绘制Tile地图
5.1.4 绘制幽灵
5.1.5 视差滚动
5.1.6 充电器
5.1.7 简单坏人
5.2 碰撞探测
5.2.1 探测碰撞
5.2.2 处理碰撞
5.2.3 幽灵碰撞
5.3 完成与加速
5.4 生成可执行的 .jar文件
5.5 扩展游戏
5.6 小结
第6章 多人游戏
6.1 Java I/O库的变革
6.1.1 JDK 1.4 NIO库的概述
6.1.2 信道
6.1.3 缓存
6.1.4 选择器与SelectionKeys
6.2 基本多方游戏应用程序
6.2.1 服务器端
6.2.2 建立与运行服务器
6.2.3 客户端
6.2.4 建立与运行客户机
6.3 多方游戏服务器框架
6.3.1 设计目标与战术
6.3.2 设计
6.3.3 共用类与接口
6.3.4 服务器实现
6.3.5 客户机
6.4 RPS游戏(石头、布、剪刀)
6.4.1 类
6.4.2 运行RPS游戏
6.5 建立框架
6.5.1 客户机GUI
6.5.2 持久性
6.5.3 伙伴名单、门厅与闲聊
6.6 服务器管理
6.6.1 登记
6.6.2 启动/关闭
6.6.3 服务器管理控制台
6.6.4 游戏监查
6.7 高级课题
6.7.1 切断与重接
6.7.2 HTTP隧道
6.7.3 量化测试
6.7.4 Modem连接
6.7.5 性能剖析与统计
6.7.6 性能调整
6.8 小结
第二部分 三维图形与高级技术
第7章 三维图形
7.1 三维绘制的类型
7.2 回顾曾经学过的数学
7.2.1 三角学和直角三角形
7.2.2 向量数学
7.3 3D的基础
7.4 3D的数学
7.5 多边形
7.6 三维变换
7.6.1 旋转
7.6.2 包装旋转和平移变换
7.6.3 采用变换
7.6.4 旋转顺序
7.7 3D的简单管道
7.8 镜头移动
7.9 实体和背面删除
7.9.1 点积
7.9.2 交积
7.9.3 再谈点积和交积
7.10 扫描转换多边形
7.11 三维剪取
7.12 最后绘制管道
7.13 小结
第8章 纹理贴图与照明
8.1 透视正确纹理贴图的基础
8.2 简单纹理贴图器
8.3 优化纹理贴图
8.3.1 纹理的存储格式
8.3.2 原始优化
8.3.3 内联方法
8.3.4 快速纹理贴图演示程序
8.4 简单灯光
8.4.1 扩散反射
8.4.2 环境光
8.4.3 光源强度
8.4.4 距离减弱
8.4.5 实现点光源
8.5 实现纹理照明
8.6 使用阴影图的高级照明
8.6.1 求出边界矩形
8.6.2 采用色档图
8.6.3 建立色档图
8.6.4 建立表面
8.6.5 缓存表面
8.6.6 阴影表面演示程序
8.7 其他概念
8.7.1 深度提示
8.7.2 伪阴影
8.7.3 MIP贴图
8.7.4 双线性插值
8.7.5 三线性插值
8.7.6 法线图与深度
8.7.7 其他类型的光
8.8 小结
第9章 三维对象
9.1 表面消隐
9.1.1 油画算法
9.1.2 反油画算法
9.1.3 Z缓存
9.1.4 使用1/Z的Z缓存
9.1.5 计算Z深度
9.2 三维动画
9.2.1 空间运动
9.2.2 角度运动
9.3 多边形组
9.4 从OBJ文件装入多边形组
9.4.1 OBJ文件格式
9.4.2 MTL文件格式
9.5 游戏实体
9.6 管理游戏实体
9.7 综合起来
9.8 改进
9.9 小结
第10章 用BSP树管理三维视景
10.1 BSP树简介
10.2 二叉树基础
10.3 一维BSP树
10.4 二维BSP树
10.4.1 建立BSP树
10.4.2 BSP树遍历实例
10.5 实现二维BSP树
10.5.1 BSP Line
10.5.2 确定点相对于直线的边
10.5.3 BSP多边形
10.5.4 遍历BSP树
10.5.5 中序遍历
10.5.6 由前到后遍历
10.5.7 树的建立
10.5.8 两条线求交
10.5.9 用直线剪取多边形
10.5.10 删除T形接头
10.5.11 测试BSP树
10.6 从前到后画多边形
10.7 第一个BSP树例子
10.8 在视景中画实体
10.9 从文中装入贴图
10.10 综合起来
10.11 改进
10.12 小结
第11章 碰撞探测
11.1 碰撞基础
11.2 实体间碰撞
11.2.1 减少测试
11.2.2 边框球
11.2.3 边框圆柱
11.2.4 离散时间问题
11.3 实体与世界碰撞
11.3.1 测试地板的边框
11.3.2 寻找特定位置的BSP叶
11.3.3 实现地板和天花板高度测试
11.3.4 测试墙的边框
11.3.5 BSP树的线段交点
11.3.6 角问题
11.3.7 实现实体/世界碰撞探测
11.4 基本碰撞探测演示程序
11.5 滑动与碰撞处理
11.5.1 实体间滑动
11.5.2 实体沿墙的滑动
11.5.3 重力与爬楼梯(实体沿地面滑动)
11.5.4 实现跳动
11.6 碰撞探测与滑动演示程序
11.7 改进
11.8 小结
第12章 路径搜索
12.1 路径寻找基础
12.2 初步路径寻找方法
12.3 A*算法基础
12.4 采用A*算法
12.5 BSP树与A*算法
12.5.1 门户
12.5.2 实现门户
12.6 一般性路径寻找
12.7 建立PathBot
12.8 改进A*搜索
12.9 小结
第13章 人工智能
13.1 人工智能基础
13.2 减少Bot的神力
13.2.1 视觉
13.2.2 听觉
13.3 状态机与响应
13.4 概率机
13.5 决策
13.6 模式
13.6.1 躲避
13.6.2 攻击
13.6.3 跑开
13.6.4 瞄准
13.6.5 射击
13.7 实体派生
13.8 综合起来
13.8.1 大脑
13.8.2 健康与死亡
13.9 进化
13.9.1 再生
13.9.2 进化Bot
13.9.3 演示改进
13.10 进化
13.11 小结
第14章 游戏脚本
14.1 关于脚本
14.2 实现接触与释放通知
14.3 游戏实体监听器
14.4 脚本
14.4.1 设计脚本
14.4.2 嵌入BeanShell解释器
14.5 延迟事件
14.6 综合起来
14.7 改进
14.8 小结
第15章 保存游戏
15.1 游戏保存基础
15.2 对游戏状态保存使用Java序列化API
15.2.1 序列化简介
15.2.2 序列化基础
15.2.3 序列化规则
15.2.4 序列化问题
15.2.5 覆盖缺省行为
15.3 生成游戏屏幕图形
15.3.1 生成屏幕略图图形
15.3.2 保存图形
15.4 将游戏保存到正确目的地
15.5 小结
第三部分 调整与完成游戏
第16章 优化技术
16.1 优化规则
16.2 剖析
16.2.1 基准测试
16.2.2 使用HotSpot剖析器
16.3 HotSpot
16.3.1 Java特定优化
16.3.2 死亡代码消除
16.3.3 循环不变项提升
16.3.4 公共子表达式消除
16.3.5 常量传递
16.3.6 内联方法
16.4 优化技巧
16.4.1 算法
16.4.2 移位
16.4.3 求模
16.4.4 乘法
16.4.5 指数
16.4.6 更多循环不变项提升
16.4.7 查找表
16.4.8 定点算术
16.4.9 异常
16.4.10 输入/输出
16.4.11 内存贴图文件
16.5 内存使用与回收
16.5.1 Java堆与内存回收
16.5.2 监视内存回收
16.5.3 监视内存使用
16.5.4 调整堆
16.5.5 调用内存回收单元
16.5.6 减少对象生成
16.5.7 对象复用
16.5.8 对象池
16.6 感觉性能
16.7 小结
第17章 生成游戏图形与声音
17.1 选择外观
17.1.1 寻找灵感
17.1.2 保持一致
17.2 取得自由版权游戏媒体
17.3 与艺术家和声效工程师合作
17.4 工具
17.5 生成声音
17.6 生成纹理与幽灵
17.6.1 图形文件格式
17.6.2 生成无缝纹理
17.6.3 生成替换纹理
17.6.4 生成过渡纹理
17.6.5 生成多层纹理
17.7 生成漂亮屏幕与HUD图形
17.8 生成UI图形
17.9 生成字体
17.10 小结
第18章 游戏设计与最后10%
18.1 最后10%
18.1.1 效果
18.1.2 游戏状态机
18.2 游戏设计要素
18.2.1 环境
18.2.2 故事要素
18.2.3 玩游戏
18.2.4 告诉用户怎么玩
18.3 生成贴图编辑器
18.4 调试
18.4.1 调试Java2D问题
18.4.2 日志
18.5 保护代码
18.6 游戏部署
18.7 Java Web Start游戏部署
18.7.1 从jar文件取得资源
18.7.2 签名jar文件
18.7.3 生成JNLP文件
18.7.4 设置Web服务器
18.8 自然编译游戏部署
18.9 更新与补丁
18.10 带宽问题
18.11 反馈与Beta测试
18.12 赚钱
18.13 综合起来
18.14 小结
第19章 未来
19.1 Java的演变
19.1.1 Java社团
19.1.2 缺陷天堂(Bug Parade)
19.2 Java 1.5(Tiger)
19.2.1 一般(JSR 14)
19.2.2 枚举(JSR 201)
19.2.3 静态导入(JSR 201)
19.2.4 改进for循环(JSR 201)
19.2.5 编译器API(JSR 199)
19.2.6 网络传输格式(JSR 200)
19.2.7 共享虚拟机(JSR 121)
19.3 Java平台需要什么
19.3.1 更多鼠标与键盘输入选项
19.3.2 游戏杆输入
19.3.3 硬件加速半透明图像
19.3.4 高精度定时器
19.3.5 Linux中的硬件加速图形和全屏方式
19.3.6 运行环境中的硬件加速三维特性
19.3.7 HotSpot SIMD优化
19.3.8 更多字体光顺选项
19.3.9 其他情况
19.4 新设备与Java Games Profile(JSR 134)
19.5 小结
猜您喜欢

读书导航