1.为初学者量身打造
循序渐进,适合零基础入门者学习。书中案例从易到难,且提供了实现过程的分步骤代码;
2.趣味性强
本书精选了13个案例,涵盖多种游戏类型,在开发趣味程序的过程中,会有很强的成就感;
3.可拓展性强
所有章节均提供练习题,培养读者逻辑思维的能力;
4.配套资源丰富
提供演示视频、配套资源代码和素材、书中每章练习题答案、书中配套彩图文件;
5.全彩印刷
《C和C++游戏趣味编程》通过趣味案例逐步引入语法知识,教读者用C?和?C++编写游戏程序,激发读者学习编程的兴趣。全书共14章和3个附录,依次介绍了C和C++编程语言的基本概念、数据类型、if语句、while循环、for循环、一维数组、函数、二维数组、字符串、文件读写、指针、递归、面向对象编程、链表和C++标准模板库等知识,其中贯穿了众多的小案例和游戏,最后综合应用这些知识编写了一款冒险游戏。附录分别给出了练习题的参考答案、语法知识索引以及常用的调试方法和辅助开发工具。本书适合不同年龄、不同层次的 C 与 C++ 编程初学者阅读和自学,也可以作为中学生、大学生学习程序设计的教材和少儿编程培训机构的参考教材。
目录
- 第 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