3.2.4 图形与图像的“深度” 59
3.3 绘制图像 62
3.3.1 Java支持的图像类型 62
3.3.2 获取与绘制图像 63
3.3.3 图像追踪 66
3.3.4 页面跳转 72
3.3.5 设置图像的透明色 75
第4章 动画的制作 79
4.1 动画的原理 80
4.1.1 视觉暂留 80
4.1.3 动画的类型 81
4.1.2 设置合理的FPS 81
4.2 让图像动起来 82
4.2.1 动画循环 82
4.2.2 使用线程 86
4.2.3 消除动画的闪烁现象 90
4.2.4 使用合理的FPS 97
4.2.5 改善动画播放的效率 100
4.3 两个简单的动画实例 107
4.3.1 游戏片头画面 107
4.3.2 小时钟 115
第5章 互动与音效 121
5.1.1 事件处理机制 122
5.1 如何和玩家互动 122
5.1.2 事件处理范例 125
5.2 鼠标和键盘事件处理 130
5.2.1 鼠标事件处理 130
5.2.2 键盘事件处理 139
5.3 音效的使用 145
5.3.1 Java支持的音效文件 145
5.3.2 下载音效文件 145
5.3.3 使用音效文件 146
第6章 游戏动画进阶与实现 151
6.1 游戏动画进阶 152
6.1.1 角色与动画 152
6.1.2 角色碰撞检测 153
6.1.3 碰撞的实例 155
6.1.4 定义角色父类 162
6.1.5 角色动画与帧动画结合 164
6.1.6 贴图技巧 173
6.2 范例——棒打猪头 178
第7章 强化游戏界面 191
7.1 使用AWT组件 192
7.1.1 AWT组件简介 192
7.1.2 建立AWT组件实例 192
7.1.3 界面布局 196
7.1.4 将Panel与LayoutManager结合 202
7.1.5 处理AWT组件的事件 205
7.2.1 使用网页特效 210
7.2 网页游戏界面 210
7.2.2 传入参数到Applet中 212
7.3 范例——棒打猪头v2.0 214
第8章 浅谈人工智能与2.5D游戏 221
8.1 浅谈人工智能 222
8.1.1 何谓人工智能 222
8.1.2 基本的人工智能概念 223
8.1.3 游戏难度设置 233
8.2 浅谈2.5D游戏 235
第9章 项目研究——网络联机程序 237
9.1.1 网络联机的基本概念 238
9.1 网络联机 238
9.1.2 地址信息的取得 239
9.1.3 客户端联机Socket 244
9.1.4 服务器端联机ServerSocket 247
9.1.5 一对一聊天程序 249
9.1.6 使用Applet的联机程序 257
9.2 多人联机 261
9.2.1 多人联机类型 261
9.2.2 随机型联机游戏 262
9.2.3 服务器端程序剖析 264
9.2.4 客户端程序剖析 276
第10章 项目研究——从2D到2.5D 281
10.1.1 游戏的规划 282
10.1 2D迷宫 282
10.1.2 程序的规划 283
10.1.3 绘图与键盘事件 284
10.1.4 角色状态类 292
10.2 2.5D迷宫 294
10.2.1 斜角地图的拼接 294
10.2.2 斜角地图坐标的定位 298
10.2.3 立体坐标旋转 300
10.2.4 立体障碍物 305
10.2.5 处理绘图深度 309
10.2.6 实现2.5D迷宫游戏 311
10.3 自动产生迷宫地图 318
10.3.2 迷宫数组 319
10.3.1 地图编辑的概念 319
10.3.3 使用递归产生迷宫 322
第11章 绘图算法 329
11.1 粒子系统 330
11.1.1 烟火粒子 330
11.1.2 瀑布粒子 335
11.1.3 烟粒子 339
11.1.4 烟火树与喷泉 344
11.1.5 雪花粒子 348
11.2 立体绘图与旋转 351
11.2.1 旋转立体五角锥 352
11.2.2 具有远近感的立体对象 360
11.2.3 其他立体坐标定位法 369