当前位置:首页 > 工业技术
C++游戏与图形编程基础  第2版
C++游戏与图形编程基础  第2版

C++游戏与图形编程基础 第2版PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(美)加迪斯(GaddisT.)著;周靖译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302362784
  • 页数:543 页
图书介绍:《C++游戏与图形编程基础》作为入门教材,采用一种新颖、有趣的“寓教于乐”的方式来讲授传统主题,即鼓励并引导学生亲自动手写程序来生成图形、处理图像/声音和玩游戏。书中这些经过精心设计的例子和作业,可以大大激发读者的学习兴趣,使他们在整个课程中兴趣盎然地专心学,动手做。本书适合没有任何编程背景但对游戏编程具有强烈兴趣的读者,是帮助他们进入图形和游戏编程世界的理想教程。
《C++游戏与图形编程基础 第2版》目录

第Ⅰ部分 标准C++入门 3

第1章 计算机和编程概论 3

1.1 概述 3

1.2 硬件 3

1.2.1 CPU 4

1.2.2 主内存 5

1.2.3 辅助存储设备 6

1.2.4 输入设备 6

1.2.5 输出设备 7

知识检查点 7

1.3 计算机如何存储数据 7

1.3.1 存储数字 8

1.3.2 存储字符 9

1.3.3 负整数 10

1.3.4 实数 10

1.3.5 其他类型的数据 11

知识检查点 11

1.4 程序如何工作 11

1.4.1 从机器语言到汇编语言 14

1.4.2 高级语言 14

1.4.3 关键字、运算符和语法:概述 16

1.4.4 编译器和解释器 17

知识检查点 18

1.5 C++和App Game Kit库 18

1.5.1 核心语言和库 19

1.5.2 需要使用的软件 19

综合测验 29

编程练习 31

第2章 C++基础知识 33

2.1 C++程序的组成部分 33

分号 35

知识检查点 35

2.2 显示屏幕输出 35

2.2.1 使用endl运算子 37

2.2.2 \n转义序列 38

知识检查点 40

2.3 深入#include指令 41

2.4 变量初探 41

2.4.1 数据类型 42

2.4.2 变量名称 42

2.4.3 常用数据类型 43

2.4.4 int,float和double数据类型 44

2.4.5 在函数中声明变量 45

2.4.6 变量要先声明再使用 45

2.4.7 变量初始化 46

2.4.8 一个语句声明多个变量 46

2.4.9 数值文字常量 47

2.4.10 int变量和赋值兼容性 47

2.4.11 double变量和赋值兼容性 48

2.4.12 变量一次容纳一个值 48

2.4.13 作用域 49

2.4.14 重复的变量名称 49

2.4.15 float数据类型 49

知识检查点 49

2.5 读取键盘输入 50

提示消息 52

知识检查点 52

2.6 注释、空行和缩进 52

2.6.1 单行注释 53

2.6.2 多行注释 54

2.6.4 用空行和缩进增强可读性 54

知识检查点 55

2.7 执行计算和处理数字 55

2.7.1 运算顺序 56

2.7.2 用圆括号进行分组 58

2.7.3 整数除法 58

2.7.4 取余运算符 58

2.7.5 复合赋值运算符 60

2.7.6 混合类型表达式和数据类型转换 61

知识检查点 65

2.8 命名常量 65

知识检查点 67

2.9 标准库的数学函数 67

2.10 使用字符串 69

知识检查点 72

2.11 char数据类型 72

综合测验 74

编程练习 76

第3章 判断结构和布尔逻辑 78

3.1 控制结构 78

伪代码 79

知识检查点 80

3.2 用if语句写判断结构 80

3.2.1 布尔表达式和关系运算符 82

3.2.2 综合运用 84

知识检查点 87

3.3 if-else语句 88

知识检查点 92

3.4 嵌套判断结构和if-else-if语句 92

3.4.1 测试一系列条件 97

3.4.2 if-else-if语句 100

知识检查点 101

3.5 逻辑运算符 102

3.5.1 运算符&& 103

3.5.2 运算符‖ 103

3.5.3 短路求值 104

3.5.4 运算符! 104

3.5.5 逻辑运算符的优先级 105

3.5.6 用逻辑运算符检查数值范围 105

知识检查点 106

3.6 switch语句 106

知识检查点 111

3.7 bool变量 111

知识检查点 112

3.8 比较字符串 112

综合测验 115

编程练习 118

第4章 重复结构 120

4.1 重复结构 120

条件控制和计数控制的循环 121

知识检查点 121

4.2 条件控制的循环:while和do-while循环 121

4.2.1 while循环 121

4.2.2 while循环是先测试循环 125

4.2.3 无限循环 127

4.2.4 do-while循环是后测试循环 128

知识检查点 129

4.3 递增和递减运算符 130

知识检查点 130

4.4 计数控制的循环:for循环 131

4.4.1 在初始化表达式中声明计数器变量 134

4.4.2 在循环主体中使用计数器变量 135

4.4.3 其他形式的更新表达式 136

4.4.4 让用户控制迭代次数 138

知识检查点 139

4.5 计算累加值 140

知识检查点 142

4.6 嵌套循环 142

综合测验 149

编程练习 150

第5章 函数 153

5.1 函数简介 153

void函数和返回值的函数 154

5.2 void函数 155

5.2.1 函数头 155

5.2.2 函数主体 155

5.2.3 调用函数 156

5.2.3 函数原型 157

5.2.4 自顶向下设计 159

知识检查点 159

5.3 局部变量 159

5.3.1 作用域和局部变量 160

5.3.2 重复的变量名称 161

知识检查点 161

5.4 向函数传递实参 161

5.4.1 参数变量(形参)的作用域 165

5.4.2 传递多个实参 165

5.4.3 以传值方式传递实参 166

5.4.4 以传引用方式传递实参 168

知识检查点 169

5.5 全局变量和全局常量 169

5.5.1 全局变量 169

5.5.2 全局常量 170

知识检查点 173

5.6 返回值的函数 173

5.6.1 自己写返回值的函数 173

5.6.2 bool函数 178

5.6.3 从函数返回字符串 180

知识检查点 181

5.7 调用string类的成员函数 181

综合测验 183

编程练习 185

第6章 数组 188

6.1 数组基础 188

6.1.1 数组元素和下标 189

6.1.2 向数组元素赋值 190

6.1.3 输入和输出数组内容 190

6.1.4 数组初始化 192

6.1.5 使用循环来遍历数组 192

6.1.6 C++不执行数组边界检查 195

6.1.7 警惕相差1错误 195

6.1.8 处理数组元素 196

知识检查点 197

6.2 顺序搜索数组 198

搜索字符串数组 201

知识检查点 202

6.3 处理数组内容 203

6.3.1 复制数组 203

6.3.2 比较数组 203

6.3.3 累加数组中的值 205

6.3.4 计算数组平均值 206

6.3.5 找出数组中的最大和最小值 207

6.3.6 将数组作为实参传给函数 210

6.3.7 部分填充的数组 212

知识检查点 219

6.4 平行数组 219

知识检查点 221

6.5 二维数组 221

6.5.1 声明二维数组 222

6.5.2 访问二维数组中的元素 223

6.5.3 向函数传递二维数组 226

知识检查点 227

6.6 多维数组 228

知识检查点 229

综合测验 230

编程练习 232

第Ⅱ部分 C++和AGK游戏编程基础 237

第7章 通过App Game Kit进行C++编程 237

7.1 App Game Kit和游戏程序的结构 237

7.1.1 典型游戏程序的结构 237

7.1.2 记住,app::Loop函数是自动循环的 240

7.1.3 创建使用Visual C++的AGK项目 240

7.1.4 App Game Kit联机文档 243

知识检查点 244

7.2 屏幕坐标系统 244

设置虚拟分辨率 245

知识检查点 246

7.3 显示精灵 247

7.3.1 位图图像 247

7.3.2 精灵 247

7.3.3 图形文件的位置 247

7.3.4 理解后台缓冲区和同步 248

7.3.5 精灵作为背景使用 250

7.3.6 显示多个精灵 252

7.3.7 精灵深度 253

7.3.8 设置精灵位置 255

7.3.9 获取精灵的X和Y坐标 257

7.3.10 获取精灵的宽度和高度 257

7.3.11 缩放精灵 257

7.3.12 旋转精灵 258

7.3.13 翻转精灵 259

7.3.14 使精灵可见或不可见 259

7.3.15 克隆精灵 260

7.3.16 精灵的透明背景 260

7.3.17 黑色透明背景 261

7.3.18 删除精灵 264

7.3.19 组织template文件夹中的图片 265

知识检查点 267

7.4 使用游戏循环 267

7.4.1 更改同步频率 272

7.4.2 游戏状态 272

知识检查点 277

7.5 处理颜色和透明度 277

7.5.1 RGB颜色系统 277

7.5.2 向精灵应用颜色和透明 278

7.5.3 获取精灵的颜色和alpha值 279

知识检查点 280

7.6 在AGK窗口中显示文本 280

7.6.1 打印string对象 283

7.6.2 在窗口标题栏显示标题 285

知识检查点 285

7.7 生成随机数 285

知识检查点 289

综合测验 290

编程练习 292

第8章 输入、动画和声音 293

8.1 鼠标 293

8.1.1 获取鼠标坐标 293

8.1.2 显示和隐藏鼠标指针 295

8.1.3 检测鼠标输入 295

8.1.4 用agk::GetSpriteHit函数判断鼠标指针是否碰到精灵 297

8.1.5 综合运用 298

知识检查点 300

8.2 虚拟按钮 301

8.2.1 在屏幕上添加虚拟按钮 301

8.2.2 更改虚拟按钮的位置 301

8.2.3 更改虚拟按钮的大小 302

8.2.4 在虚拟按钮上显示文本 302

8.2.5 更改虚拟按钮的颜色 302

8.2.6 更改虚拟按钮的透明度 302

8.2.7 显示和隐藏虚拟按钮 303

8.2.8 启用或禁用虚拟按钮 303

8.2.9 更改虚拟按钮的图像 303

8.2.10 响应按下虚拟按钮的事件 304

知识检查点 306

8.3 虚拟手柄 306

8.3.1 添加虚拟手柄 307

8.3.2 设置虚拟手柄的位置 307

8.3.3 设置虚拟手柄的大小 307

8.3.4 设置虚拟手柄的透明度 308

8.3.5 设置禁用或启用虚拟手柄 308

8.3.6 设置虚拟手柄的可见性 308

8.3.7 更改虚拟手柄的图像 309

8.3.8 判断虚拟手柄是否存在 309

8.3.9 删除虚拟手柄 309

8.3.10 设置虚拟手柄的死亡区域 309

8.3.11 获取虚拟手柄的输入 310

知识检查点 313

8.4 键盘 313

8.4.1 用键盘按键移动物体 313

8.4.2 响应按键 315

8.4.3 判断按下的最后一个键 315

知识检查点 317

8.5 动画 317

8.5.1 用纹理图集简化动画 320

8.5.2 用AGK播放精灵动画 321

8.5.3 停止和恢复精灵动画 323

知识检查点 323

8.6 音乐和声音 324

8.6.1 加载声音文件 324

8.6.2 播放声音 324

8.6.3 音乐文件 328

8.6.4 加载音乐文件 328

8.6.5 播放音乐 328

8.7 Bug Zapper游戏 330

综合测验 339

编程练习 341

第9章 文本、碰撞和“坏秃鹰”游戏 343

9.1 文本对象 343

9.1.1 创建文本对象 343

9.1.2 删除文本对象 343

9.1.3 判断文本对象是否存在 344

9.1.4 设置文本对象大小 344

9.1.5 获取文本对象大小 344

9.1.6 设置文本对象位置 344

9.1.7 设置文本对象X坐标 345

9.1.8 获取文本对象X坐标 345

9.1.9 设置文本对象Y坐标 345

9.1.10 获取文本对象Y坐标 345

9.1.11 设置文本对象对齐 349

9.1.12 更改文本对象字母间距 352

9.1.13 设置文本对象的内容 355

9.1.14 获取文本对象的总宽度 355

9.1.15 获取文本对象的总高度 355

9.1.16 显示或隐藏文本对象 355

9.1.17 更改文本对象颜色 355

9.1.18 检测与文本对象的碰撞 356

知识检查点 359

9.2 精灵碰撞检测 359

知识检查点 369

9.3 模拟物体坠落 369

模拟两个方向的运动 375

知识检查点 378

9.4 “坏秃鹰”游戏 378

综合测验 411

编程练习 412

第10章 在AGK中使用文件和数组 414

10.1 文件输入和输出 414

10.1.1 文件名 416

10.1.2 文件编号 416

10.1.3 打开输出文件 416

10.1.4 向现有文件追加数据 417

10.1.5 向输出文件写入数据 417

10.1.6 关闭输出文件 418

10.1.7 打开输入文件 419

10.1.8 从输入文件读取数据 419

10.1.9 关闭输入文件 420

10.1.10 判断文件是否打开 420

知识检查点 436

10.2 在AGK程序中使用数组 437

数组排序 449

10.3 Tile Map 457

10.4 遇到障碍物 473

知识检查点 482

综合测验 483

编程练习 485

第11章 面向对象编程 487

11.1 过程式编程和面向对象编程 487

11.1.1 对象重用 489

11.1.2 日常生活中的对象 489

11.1.3 面向对象编程术语 489

知识检查点 490

11.2 类和对象 490

11.2.1 声明类 492

11.2.2 赋值函数和取值函数 492

11.2.3 构造器 492

11.2.4 析构器 493

11.2.5 设计Sprite类 493

11.2.6 定义成员函数 495

11.2.7 根据同一个类创建多个对象 502

11.2.8 重载构造器和成员函数 505

11.2.9 创建对象数组 512

11.2.10 对象作为实参传给函数 515

知识检查点 517

11.3 继承 518

11.3.1 常规化和特殊化 518

11.3.2 继承和“属于”关系 518

知识检查点 535

综合测验 536

编程练习 537

附录 下载和安装必要的软件 539

返回顶部