第1章 电脑游戏开发概述 1
1.1电脑游戏的发展历史 1
1.2电脑游戏的类型 2
1.3电脑游戏的策划 7
1.3.1游戏策划的基本概念 7
1.3.2游戏设计的基本内容 7
1.4电脑游戏的程序开发工具 8
第2章 游戏图形界面开发基础 11
2.1 AWT简介 11
2.2 Swing基础 11
2.3 Swing组件 12
2.3.1按钮(Jbutton) 12
2.3.2单选按钮(JRadioButton) 12
2.3.3复选框(JCheckBox) 14
2.3.4组合框(JComboBox) 15
2.3.5列表(JList) 16
2.3.6文本框(JTextField和JPasswordField) 16
2.3.7面板(JPanel) 17
2.3.8表格(JTable) 18
2.3.9框架(JFrame) 19
2.4布局管理器 19
2.4.1布局管理器概述 20
2.4.2流布局管理器F1owLayout 20
2.4.3边界布局BorderLayout 20
2.4.4卡片布局管理器CardLayout 21
2.4.5网格布局管理器GridLayout 21
2.4.6 null布局管理器 22
2.5常用事件处理 22
2.5.1动作事件处理 22
2.5.2鼠标事件处理 23
2.5.3键盘事件处理 25
第3章Java图形处理和Java 2D 27
3.1 Java图形坐标系统和图形上下文 27
3.2 Color类 28
3.3 Font类和FontMetrics类 29
3.3.1 Font类 29
3.3.2 FontMetrics类 30
3.4常用的绘图方法 31
3.4.1绘制直线 31
3.4.2绘制矩形 31
3.4.3绘制椭圆 32
3.4.4绘制弧形 33
3.4.5绘制多边形和折线段 34
3.4.6清除绘制的图形 35
3.5 Java 2D简介 35
3.5.1 Java 2D API 35
3.5.2 Graphics2D简介 36
3.5.3 Graphics2D绘制 37
3.5.4 Graphics2D的属性设置 39
3.5.5路径类 42
3.5.6平移、缩放或旋转图形 44
第4章Java游戏程序的基本框架 45
4.1动画的类型及帧频 45
4.1.1动画类型 45
4.1.2设置合理的帧频 45
4.2游戏动画的制作 46
4.2.1绘制动画以及动画循环 46
4.2.2消除动画闪烁现象——双缓冲技术 49
4.3使用定时器 52
4.4设置游戏难度 53
4.5游戏与玩家的交互 53
4.6游戏中的碰撞检测 55
4.6.1矩形碰撞 55
4.6.2圆形碰撞 57
4.6.3像素碰撞 57
4.7游戏中图像的绘制 58
4.7.1图像文件的装载 58
4.7.2图像文件的显示 59
4.7.3绘制卷轴型图像 62
4.7.4绘制砖块型图像 62
4.8游戏角色开发 63
4.9游戏声音效果的设定 66
第5章 推箱子游戏 68
5.1推箱子游戏介绍 68
5.2程序设计的思路 69
5.3程序设计的步骤 71
5.3.1设计地图数据类(MapFactory.java) 71
5.3.2设计地图类(Map.java) 72
5.3.3设计游戏面板类(GameFrame .java) 73
5.3.4播放背景音乐类(Sound.java) 80
第6章 雷电飞机射击游戏 82
6.1雷电游戏介绍 82
6.2程序设计的思路 82
6.2.1游戏素材 82
6.2.2地图滚动的原理实现 83
6.2.3飞机和子弹的实现 84
6.2.4主角飞机子弹与敌机的碰撞检测 85
6.3关键技术 86
6.3.1多线程 86
6.3.2 Java的Thread类和Runnable接口 87
6.4雷电飞机游戏设计的步骤 90
6.4.1设计子弹类(Bullet.java) 90
6.4.2设计敌机类(Enemy .java) 91
6.4.3设计游戏界面类(GamePanel .java) 93
6.4.4设计游戏窗口类(planeFrame.java) 98
第7章21点扑克牌游戏 99
7.1 21点扑克牌游戏介绍 99
7.2关键技术 100
7.2.1扑克牌面绘制 100
7.2.2识别牌的点数 100
7.2.3 Dealer(庄家)要牌的智能实现 101
7.2.4游戏规则的算法实现 101
7.3程序设计的步骤 102
7.3.1设计扑克牌类(Card .java) 102
7.3.2设计一副扑克类(Poker .java) 103
7.3.3设计游戏面板类(PokerPanel .java) 104
7.3.4设计游戏主窗口类(Pai .java) 107
第8章 连连看游戏 109
8.1连连看游戏介绍 109
8.2程序设计的思路 110
8.2.1连连看游戏数据模型 110
8.2.2动物方块布局 111
8.2.3连通算法 111
8.2.4智能查找功能的实现 118
8.3关键技术 120
8.3.1动物方块图案的显示 120
8.3.2鼠标相关的事件 121
8.3.3延时功能 126
8.4程序设计的步骤 127
8.4.1设计游戏界面窗体(LLKFrame java) 127
8.4.2设计游戏面板类(LLKPanel .java) 128
第9章 人物拼图游戏 133
9.1人物拼图游戏介绍 133
9.2程序设计的思路 133
9.3关键技术 134
9.3.1按钮显示图片的实现 134
9.3.2图片按钮移动的实现 134
9.3.3从BufferedImage转换成ImageIcon 135
9.4程序设计的步骤 135
9.4.1设计单元图片类(Cell.java) 136
9.4.2枚举类型Direction java 136
9.4.3游戏面板类(GamePanel .java) 137
9.4.4主窗口类(MainFrame.java) 140
第10章 对对碰游戏(按钮版) 142
10.1对对碰游戏介绍 142
10.2程序设计的思路 143
10.2.1游戏素材 143
10.2.2设计思路 143
10.3关键技术 144
10.3.1动态生成8x8的按钮 144
10.3.2进度条组件(JProgressBar) 145
10.3.3定时器功能 145
10.4程序设计的步骤 145
10.4.1设计游戏窗口类(MyJframes.java) 145
10.4.2设计内部定时器类 153
第11章 对对碰游戏(图形版) 154
11.1对对碰游戏介绍 154
11.2对对碰游戏设计思路 154
11.2.1游戏素材 154
11.2.2设计思路 155
11.3程序设计的步骤 155
11.3.1设计游戏窗口类(GameRoom.java) 155
11.3.2设计内部游戏面板类 161
11.3.3设计内部定时器类 161
第12章 俄罗斯方块游戏 162
12.1俄罗斯方块游戏介绍 162
12.2程序设计的思路 163
12.2.1俄罗斯方块形状的设计 163
12.2.2俄罗斯方块游戏的面板屏幕 164
12.2.3俄罗斯方块游戏的运行流程 165
12.3俄罗斯方块设计的步骤 165
12.3.1设计游戏界面类(Tetrisblok.java) 165
12.3.2设计游戏窗口类(TetrisFrame.java) 171
第13章 开心农场 173
13.1开心农场游戏介绍 173
13.2程序设计的思路 173
13.2.1游戏素材 173
13.2.2设计思路 174
13.3关键技术 174
13.3.1实现图形按钮 174
13.4开心农场设计的步骤 175
13.4.1设计农作物类(Crop.java) 175
13.4.2设计背景的面板(BackgroundPanel.java) 175
13.4.3设计农场类(Farml .java) 176
13.4.4设计窗体类(MainFrame.java) 178
第14章 单机版五子棋游戏 182
14.1单机版五子棋游戏简介 182
14.2五子棋设计思想 182
14.3关键技术 183
14.3.1 Vector向量容器 183
14.3.2判断输赢的算法 184
14.4程序设计的步骤 185
14.4.1设计窗口类(wuziqi2.java) 185
第15章 网络五子棋游戏 190
15.1网络五子棋游戏简介 190
15.2五子棋设计思想 191
15.2.1界面设计 191
15.2.2通信协议 192
15.3关键技术 193
15.3.1 Socket技术 193
15.3.2 InetAddress类简介 194
15.3.3 ServerS ocket类 195
15.3.4 Socket类 197
15.4程序设计的步骤 199
15.4.1设计服务器端类(Server.java) 199
15.4.2设计客户端类(Client.java) 208
第16章 网络中国象棋 214
16.1中国象棋介绍 214
16.2关键技术 215
16.2.1 UDP简介 215
16.2.2 DatagramPacket类 215
16.2.3 DatagramSocket类 216
16.2.4 P2P知识 218
16.3网络中国象棋设计思路 219
16.3.1棋盘表示 219
16.3.2棋子表示 219
16.3.3走棋规则 220
16.3.4坐标转换 221
16.3.5通信协议设计 221
16.3.6网络通信传递棋子信息 222
16.4网络中国象棋实现的步骤 223
16.4.1设计棋子类(chess.java) 223
16.4.2设计棋盘类(ChessBoard.java) 225
16.4.3设计游戏窗体(Frmchess.java) 237
第17章RGP走迷宫游戏 241
17.1 RGP走迷宫游戏介绍 241
17.2程序设计的思路 241
17.2.1游戏素材 241
17.2.2设计思路 242
17.2.3 RGP人物的动画 242
17.3走迷宫游戏设计的步骤 243
17.3.1设计主窗体类(miGong.java) 243
17.3.2设计游戏面板类(MyPanel .java) 244
第18章 青蛙过河游戏 249
18.1青蛙过河游戏介绍 249
18.2程序设计的思路 249
18.2.1游戏素材 249
18.2.2设计思路 250
18.3青蛙过河游戏设计的步骤 250
18.3.1设计青蛙方块类(frogCell .java) 250
18.3.2设计游戏面板类(frogPanel.java) 251
18.3.3设计主窗体类(frogFrame.java) 254
第19章 打猎游戏 256
19.1打猎游戏介绍 256
19.2程序设计的思路 256
19.2.1游戏素材 256
19.2.2设计思路 257
19.3关键技术 257
19.3.1控制动物组件的移动速度 257
19.3.2随机间歇产生动物组件 258
19.3.3玻璃面板显示 259
19.4打猎游戏设计的步骤 259
19.4.1设计小鸟类(BirdLabel.java) 259
19.4.2设计野猪类(PigLabel .jjava) 261
19.4.3设计背景面板类(BackgroundPanel.java) 263
19.4.4设计主窗体类(MainFrame .java) 263
第20章2.5D游戏 267
20.1 2.5D游戏介绍 267
20.2 2.5D游戏设计思路 268
20.3程序设计的步骤 270
20.3.1创建游戏界面类(PushBox.java) 270
20.3.2设计游戏窗口类(BoxFrame2 .java) 273