第 1 章 C 和 C++ 与开发环境介绍 1
1.1 什么是 C 和 C++ 1
1.2 集成开发环境 2
1.3 小结 6
第 2 章 仿真“自由落体的小球” 7
2.1 下载安装图形库 8
2.2 显示一个静止小球 11
2.3 显示多个小球 13
2.4 利用变量修改多个小球的位置 16
2.5 小球下落动画 20
2.6 利用 while 实现小球下落动画 21
2.7 利用 if 语句实现小球重复下落 24
2.8 小球落地反弹 26
2.9 小球加速下落 27
2.10 小结 30
第 3 章 “别碰方块”游戏 31
3.1 字符 32
3.2 按空格键控制小球起跳 34
3.3 方块的绘制与移动 35
3.4 小球和方块的碰撞判断 38
3.5 随机方块的速度和高度 39
3.6 得分的计算与显示 42
3.7 避免空中起跳 46
3.8 小结 46
第 4 章 “旋转蛇”错觉 47
4.1 绘制扇形 48
4.2 RGB 颜色模型 49
4.3 绘制一个扇形单元 51
4.4 for 循环语句 52
4.5 循环的嵌套 56
4.6 HSV 颜色模型 60
4.7 按键切换效果 63
4.8 小结 66
第 5 章 “见缝插针”游戏 67
5.1 绘制圆盘与针 68
5.2 针的旋转 69
5.3 利用数组实现多根针的绘制 72
5.4 批量绘制函数 76
5.5 针的发射与新增 76
5.6 游戏失败判断 79
5.7 得分与显示效果改进 81
5.8 小结 84
第 6 章 “见缝插圆”游戏 85
6.1 利用数组记录多个随机圆 86
6.2 每次增加一个随机圆 88
6.3 新圆不和已有圆相交 90
6.4 函数的定义与应用 93
6.5 新圆半径最大化 99
6.6 函数封装多种绘制效果 101
6.7 按键互动 103
6.8 小结 106
第 7 章 “贪吃蛇”游戏 107
7.1 变量作用域与游戏框架 108
7.2 基于二维数组的游戏地图 110
7.3 小蛇向右移动 115
7.4 控制小蛇向 4 个方向移动 117
7.5 时间控制的改进 120
7.6 失败判断与显示 122
7.7 添加食物 124
7.8 小结 129
第 8 章 “十步万度”游戏 130
8.1 结构体 131
8.2 鼠标交互 135
8.3 被鼠标点击后旋转 137
8.4 函数的参数传递 139
8.5 旋转的传播 141
8.6 操作步数与旋转度数 142
8.7 小结 147
第 9 章 “推箱子”游戏 148
9.1 字符串与字符数组 149
9.2 应用字符数组存储关卡数据 152
9.3 键盘控制游戏角色移动 156
9.4 元素更新的实现 157
9.5 游戏胜利判断 160
9.6 多关卡的实现 162
9.7 基于文件的关卡数据读取 170
9.8 枚举类型 172
9.9 小结 173
第 10 章 “十字消除”游戏 174
10.1 红色方块的表示与绘制 175
10.2 随机颜色方块的实现 177
10.3 鼠标点击与十字消除 179
10.4 方块提示框的绘制 182
10.5 倒计时与进度条 183
10.6 得分计算与胜负判断 187
10.7 多关卡与增加游戏难度 188
10.8 地址与指针 196
10.9 指针与数组 199
10.10 小结 203
第 11 章 樱花树 204
11.1 递归 205
11.2 分形与递归 210
11.3 绘制樱花树 215
11.4 显示绘制过程动画 218
11.5 小结 222
第 12 章 “坚持一百秒”游戏 223
12.1 背景与火箭图片的显示 224
12.2 基于结构体的反弹子弹 229
12.3 面向对象版本的子弹 231
12.4 每隔 2 秒增加一颗子弹 234
12.5 添加火箭类 236
12.6 碰撞判断与火箭爆炸 237
12.7 坚持时间与多条生命的显示 239
12.8 添加音乐音效 245
12.9 添加智能飞碟类 246
12.10 小结 248
第 13 章 “祖玛”游戏 249
13.1 链表 250
13.2 C++ 标准模板库 253
13.3 顶点类与轨迹类 256
13.4 添加小球类 260
13.5 将小球放置在轨迹线上 262
13.6 小球自动沿着轨迹运动 264
13.7 小球的插入与消除 270
13.8 添加炮台类 272
13.9 炮台旋转与更改小球颜色 274
13.10 炮台发射小球 275
13.11 连续出球与胜负判断 277
13.12 添加音效和复杂轨道 278
13.13 小结 280
第 14 章 “火柴人的无尽冒险”游戏 281
14.1 定义 Player 类 282
14.2 异步输入与延时改进 285
14.3 枚举类型状态切换 286
14.4 添加奔跑动画 288
14.5 跳跃的实现 290
14.6 添加地面类与场景类 292
14.7 火柴人与地面的碰撞检测 294
14.8 相对运动效果的实现 296
14.9 无尽关卡与胜负判断 298
14.10 添加敌人类 300
14.11 添加音效和更多图片 303
14.12 小结 305
附录 A 练习题参考答案 307
附录 B 语法知识索引 337
附录 C 调试方法与辅助工具 342