为什么c++在哈尔滨游戏开发88087方面如此强大

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。C++游戏编程_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
C++游戏编程
《C++游戏编程》是由邹吉涛、姚雷、易巧玲编写的一本书籍。
C++游戏编程基本信息
C++游戏编程
装帧:平装
印刷日期:
C++游戏编程内容简介
本书介绍如何用C++语言进行游戏开发。全书可分为C++的基础语法、面向对象编程技术、标准模板库的应用三个部分,共18章,主要内容包括:概观程序设计,开发环境简介,基本数据类型,运算符与表达式,程序的结构,宏和编译预处理,数组,函数与程序结构,指针和引用,结构、联合、枚举,类与对象,静态成员与友元,继承与多态,运算符重载,模板,标准模板库,流,异常处理等。
本书适合游戏开发人员及游戏相关专业师生学习使用,也可供C++爱好者参考。[1]
C++游戏编程目录
第1章 概观程序设计 1
1.1 程序设计发展历程 1
1.1.1 什么是计算机程序 1
1.1.2 计算机程序语言的发展历史 2
1.2 程序设计思想 4
1.2.1 结构化程序设计思想 4
1.2.2 面向对象程序设计思想 5
本章小结 8
第2章 开发环境简介 9
2.1 Visual Studio .NET集成开发环境 9
2.1.1 创建项目 10
2.1.2 创建文件 12
2.1.3 项目属性设置 12
2.1.4 编译和运行 13
2.1.5 调试 14
2.1.6 辅助工具 14
2.1.7 解决方案资源管理器 18
2.1.8 类视图 19
2.1.9 文件视图 20
2.1.10 资源视图 20
2.1.11 帮助文档的使用 28
2.2 Linux下的开发环境 28
2.2.1 Vi编辑器的基本使用 29
2.2.2 Vi编辑器的命令 29
2.2.3 Vi编辑器环境设置 32
2.2.4 编译程序的方法 33
2.2.5 g++编译程序的选项 33
2.2.6 运行应用程序 38
2.2.7 帮助文档的使用 38
2.3 CodeBlocks集成开发工具介绍 38
2.3.1 创建工程 39
2.3.2 创建文件 39
2.3.3 项目属性设置 39
2.3.4 编译及运行 40
2.4 绘图函数库的使用 41
本章小结 41
第3章 基本数据类型 42
3.1 基本程序组成结构 42
3.1.1 一个基本的C++程序 42
3.1.2 基本输入输出 43
3.2 字符集和关键字 47
3.3 C++的数据类型概述 49
3.4 基本数据类型 51
3.4.1 整型数据 51
3.4.2 浮点型数据 52
3.4.3 字符型数据 53
3.4.4 bool类型 56
3.4.5 void类型 58
3.4.6 常量与变量 58
3.5 类型转换 61
3.5.1 隐式类型转换 62
3.5.2 强制类型转换 64
本章小结 64
第4章 运算符与表达式 66
4.1 概述 66
4.2 运算符和表达式 66
4.2.1 和表达式的种类 66
4.2.2 左值和右值 67
4.3 算术运算符和算术表达式 68
4.4 自增和自减运算符 69
4.5 赋值运算符和赋值表达式 71
4.5.1 赋值运算符与赋值运算 71
4.5.2 复合赋值运算符 72
4.5.3 赋值表达式 72
4.6 关系运算符和关系表达式 73
4.7 逻辑运算符和逻辑表达式 75
4.7.1 逻辑运算符 75
4.7.2 逻辑表达式 76
4.8 sizeof运算符 76
4.9 条件运算符和条件表达式 77
4.10 逗号运算符和逗号表达式 78
4.11 优先性和结合性 79
本章小结 80
第5章 程序的结构 81
5.1 顺序结构 81
5.2 分支结构程序设计 82
5.2.1 if…else…结构 82
5.2.2 switch语句 86
5.2.3 goto语句 89
5.3 循环结构程序设计 90
5.3.1 for语句 90
5.3.2 while语句 94
5.3.3 do-while语句 96
5.3.4 循环的嵌套 97
5.4 break、continue语句 98
5.4.1 break语句 98
5.4.2 continue语句 100
本章小结 101
第6章 宏和编译预处理 102
6.1 宏定义 103
6.2 头文件包含 108
6.3 条件编译 110
6.4 其他预处理指令 115
本章小结 119
第7章 数组 120
7.1 为何需要数组 120
7.2 声明数组 121
7.3 访问数组元素 122
7.4 数组的初始化 124
7.5 数组应用举例 125
7.5.1 选择排序 125
7.5.2 冒泡排序 127
7.5.3 更多排序算法 129
7.6 字符串与字符数组 131
7.7 数组作为函数参数 133
7.8 二维数组 134
7.8.1 二维数组的定义 134
7.8.2 二维数组中元素的引用 135
7.8.3 二维数组的初始化 135
7.8.4 二维数组程序举例 136
7.9 多维数组 138
7.9.1 多维数组的定义 139
7.9.2 多维数组的引用 139
本章小结 141
第8章 函数与程序结构 142
8.1 函数的概念 142
8.2 函数定义 143
8.3 函数声明 145
8.4 函数调用 147
8.5 变量的作用域类型 149
8.5.1 局部变量 149
8.5.2 全局变量 151
8.6 变量的存储类型 152
8.6.1 动态存储变量 152
8.6.2 静态存储变量 153
8.7 函数返回值 153
8.8 默认函数参数 155
8.9 内联函数 158
8.10 函数重载 160
8.11 作用域 163
8.11.1 局部作用域 163
8.11.2 函数作用域 164
8.11.3 函数原型作用域 165
8.12 可见性与生命期 165
8.12.1 可见性 165
8.12.2 生命期 167
8.12.3 补充说明 168
8.13 综合应用举例 168
8.14 递归函数 170
8.14.1 递归函数举例 170
8.14.2 递归调用过程分析 171
8.14.3 递归程序设计方法 172
8.15 程序文件结构 174
8.15.1 头文件 174
8.15.2 文件作用域 176
8.15.3 多文件结构 176
8.15.4 外部存储类型 177
本章小结 179
第9章 指针和引用 180
9.1 指针的概念 180
9.2 指针声明和赋值 182
9.3 通过指针访问数据 185
9.4 指针运算 187
9.5 动态内存分配 190
9.5.1 malloc()和free()函数 191
9.5.2 new和delete运算符 193
9.5.3 指针与数组 194
9.6 动态内存分配的应用 198
9.6.1 应用举例1 198
9.6.2 应用举例2 199
9.7 const指针 204
9.8 指针作为函数参数 208
9.9 指针函数 213
9.10 函数指针 215
9.11 指针数组 219
9.12 指向指针的指针 223
9.13 常见的内存错误及其对策 226
9.14 引用的定义 227
9.15 使用引用访问数据 232
9.16 引用与指针对比 235
9.17 引用做函数的参数 236
9.18 应用举例3 239
9.19 返回引用 240
9.20 函数调用作为左值 244
9.21 const限定的引用 246
9.22 返回堆中变量的引用 248
本章小结 250
第10章 结构、联合、枚举 252
10.1 自定义数据类型概述 252
10.2 结构的定义 253
10.3 结构初始化 255
10.4 访问结构成员 257
10.5 结构与数组 258
10.6 结构与指针 264
10.7 结构与引用 266
10.8 在函数中使用结构 267
10.9 结构的复杂形式 273
10.10 链表 275
10.11 联合 279
10.12 枚举 285
本章小结 294
第11章 类与对象 296
11.1 抽象概述 296
11.2 类的概念 297
11.3 类的定义 298
11.3.1 类与结构 298
11.3.2 类的声明 299
11.3.3 类成员的访问控制 300
11.3.4 数据成员 303
11.3.5 成员函数 304
11.3.6 重载成员函数 306
11.3.7 类定义的注意事项 307
11.3.8 类声明和类定义 308
11.4 对象 309
11.4.1 类与对象的区别和联系 309
11.4.2 对象的声明 309
11.4.3 访问数据成员 310
11.4.4 调用成员函数 310
11.5 综合应用 313
11.6 构造函数 314
11.6.1 为何需要构造函数 314
11.6.2 构造函数的定义 316
11.6.3 带参数构造函数 317
11.6.4 默认构造函数 318
11.6.5 重载构造函数 319
11.7 类对象成员的初始化 320
11.8 析构函数 323
11.8.1 为何需要析构函数 323
11.8.2 析构函数的定义 324
11.8.3 何时需要使用析构函数 325
11.9 堆栈和内存分配 325
11.9.1 内存管理概述 325
11.9.2 变量与对象的空间分配时机与初始化327
11.9.3 为什么使用new/delete操作符 328
11.10 拷贝构造函数 329
11.10.1 程序出错的原因分析 329
11.10.2 拷贝构造函数 332
11.10.3 默认拷贝构造函数 334
11.10.4 浅拷贝与深拷贝 334
11.11 临时对象和无名对象 337
11.11.1 临时对象 337
11.11.2 无名对象 338
11.12 const成员 339
本章小结 340
第12章 静态成员与友元 342
12.1 静态成员 342
12.1.1 为何需要静态成员 342
12.1.2 静态成员变量 343
12.1.3 静态成员函数 345
12.2 友元 346
12.2.1 为何需要友元 346
12.2.2 友元函数 347
12.2.3 友元类 348
第13章 继承与多态 351
13.1 继承与派生的概念 352
13.2 继承的实现方式 354
13.3 继承类的构造与析构 355
13.3.1 继承类的构造 355
13.3.2 构造函数的参数传递 357
13.4 基类访问控制 360
13.5 多态与虚函数 362
13.5.1 为什么使用虚函数 363
13.5.2 虚函数 364
13.5.3 重载、隐藏与覆盖 365
13.5.4 虚函数的限制 368
13.6 多继承 370
13.6.1 多继承的实现 371
13.6.2 多继承的二义性 371
13.6.3 多继承的构造顺序 373
13.7 虚基类 374
13.7.1 虚基类的定义 375
13.7.2 虚基类的构造函数和初始化376
本章小结 376
第14章 运算符重载 378
14.1 为何要重载运算符 378
14.2 运算符重载的实现 379
14.2.1 成员函数运算符重载 380
14.2.2 友元函数运算符重载 382
14.3 单目运算符和双目运算符 383
14.4 引用返回和值返回 386
14.5 常见的运算符重载 391
14.5.1 赋值与比较运算符 391
14.5.2 递增与递减运算符 392
14.5.3 数组存取标识符 393
本章小结 395
第15章 模板 396
15.1 为何需要模板 396
15.2 函数模板 397
15.2.1 函数模板的概念 397
15.2.2 函数模板的定义 398
15.2.3 函数模板的实例化 399
15.2.4 重载模板函数 399
15.3 类模板 401
15.3.1 类模板的定义 401
15.3.2 使用类模板 403
15.4 综合应用 404
本章小结 406
第16章 标准模板库 407
16.1 标准模板库的基本组成 407
16.2 标准命名空间 408
16.3 容器 409
16.3.1 顺序容器 409
16.3.2 关系式容器 411
16.4 迭代器 413
16.5 算法 415
本章小结 418
第17章 I/O流 419
17.1 流的概念 419
17.2 I/O标准流类 421
17.2.1 标准流的设备名 421
17.2.2 原理 421
17.3 输入输出的格式控制 423
17.3.1 用ios类的成员函数进行格式控制 423
17.3.2 使用格式控制符进行格式控制 427
17.4 输入输出运算符的重载 429
17.4.1 重载输出运算符 429
17.4.2 重载输入运算符 430
17.5 文件流 431
17.5.1 打开文件 432
17.5.2 关闭文件 434
17.5.3 写入文件 435
17.5.4 读取文件 435
17.5.5 常用操作和状态检测 436
17.5.6 读写随机文件 438
17.5.7 二进制文件的处理 440
本章小结 442
第18章 异常处理 443
18.1 传统的错误处理方式 443
18.2 异常处理的思想 445
18.3 异常处理的实现方式 447
18.4 构造和析构中的异常抛出 448
18.5 异常规格说明 449
18.6 标准异常 451
本章小结 452
附录A 程序的写作风格 453
.豆瓣[引用日期]想学C/C++游戏编程开发——得了解游戏编程——你了解吗?想学C/C++游戏编程开发——得了解游戏编程——你了解吗?MaEr的轶事百家号想学习编程和想做游戏加学习交流群:第1部分 入门第1章 学习开发游戏的基础知识1.1 认识视频游戏1.1.1 为什么人们如此沉迷于开发视频游戏1.1.2 视频游戏的类型1.2 学习游戏设计的要素1.2.1 提出基本思想1.2.2 整理剧情1.2.3 可视化图形1.2.4 为游戏选择正确的声音1.2.5 使用控制器控制游戏1.2.6 确定游戏模式1.3 面向对象的编程和游戏1.3.1 理解OOP1.3.2 在游戏中应用OOP1.4 研究相关工具1.4.1 编译器和开发环境1.4.2 选择图形工具1.4.3 选择声音和音乐工具1.5 小结1.6 亲身实践第2章 创建游戏引擎2.1 什么是游戏引擎2.2 考虑游戏引擎的作用2.2.1 将游戏分解为事件2.2.2 建立游戏的计时机制2.3 开发游戏引擎2.3.1 游戏事件函数2.3.2 GameEngine类2.4 开发Blizzard示例2.4.1 编写程序代码2.4.2 测试完成的程序2.5 小结2.6 游戏大变身第3章 学习绘制基本图形3.1 图形基础3.1.1 理解图形坐标系统3.1.2 学习颜色的基础知识3.2 查看Windows中的图形3.2.1 使用设备环境3.2.2 使用画笔写3.2.3 使用画刷绘制3.2.4 使用位图绘制图像3.2.5 使用调色板管理颜色3.3 绘制窗口3.3.1 绘制文本3.3.2 绘制图元3.3.3 使用画笔和画刷3.4 开发Crop Circles示例3.4.1 编写程序代码3.4.2 测试完成的程序3.5 小结3.6 亲身实践第4章 绘制图形图像4.1 位图图像的基础知识4.2 深入学习位图4.3 开发位图类4.3.1 位图类的工作原理4.3.2 整合代码4.4 开发Slideshow示例4.4.1 编写程序代码4.4.2 汇集资源4.4.3 测试完成的程序4.5 小结4.6 游戏大变身第2部分 与游戏玩家交互第5章 使用键盘和鼠标控制游戏5.1 游戏与用户输入5.2 了解用户输入设备5.2.1 接受键盘输入5.2.2 响应鼠标5.2.3 使用游戏杆交互5.3 评估游戏的键盘输入5.4 跟踪鼠标5.5 向游戏引擎添加输入支持5.5.1 添加键盘支持5.5.2 添加鼠标支持5.5.3 修改Bitmap类5.6 开发UFO示例5.6.1 编写程序代码5.6.2 测试完成的程序5.7 小结5.8 亲身实践第6章 示例游戏:Brainiac6.1 游戏的玩法6.2 设计游戏6.3 开发游戏6.4 测试游戏6.5 小结6.6 游戏大变身第7章 使用游戏杆改进输入7.1 了解游戏杆的基础知识7.2 校准游戏杆7.3 追踪游戏杆的移动7.4 向游戏引擎添加游戏杆支持7.4.1 访问Win32多媒体功能7.4.2 开发游戏杆代码7.5 开发UFO 2示例7.5.1 编写程序代码7.5.2 测试完成的程序7.6 小结7.7 亲身实践第8章 示例游戏:Light Cycles8.1 游戏的玩法8.2 设计游戏8.3 开发游戏8.4 测试游戏8.5 小结8.6 游戏大变身第3部分 在游戏中使用子画面第9章 使用于画面动画移动对象9.1 理解动画的基础知识9.1.1 动画和帧频9.1.2 了解计算机动画9.2 2D动画与3D动画9.3 理解2D动画的类型9.3.1 基于帧的动画9.3.2 基于形状的动画9.4 将子画面动画应用于游戏9.5 设计通用的子画面9.6 创建Sprite类9.6.1 创建和破坏子画面9.6.2 更新子画面9.6.3 绘制子画面9.7 开发Planets示例程序9.7.1 编写程序代码9.7.2 测试完成的程序9.8 小结9.9 亲身实践第10章 管理子画面10.1 了解管理子画面的需求10.2 设计子画面管理器10.3 向游戏引擎添加子画面管理器10.3.1 改进Sprite类10.3.2 增强游戏引擎10.4 使用双重缓存消除闪烁10.5 开发Planets 2示例10.5.1 编写程序代码10.5.2 测试完成的程序10.6 小结10.7 游戏大变身第11章 示例游戏:Henway11.1 游戏的玩法11.2 设计游戏11.3 开发游戏11.4 测试游戏11.5 小结11.6 游戏大变身第4部分 使用声音和音乐第12章 播放数字声音效果12.1 理解数字声音12.2 了解Windows波形声音12.3 了解声音工具12.3.1 Sony Sound Forge12.3.2 Adobe Audition12.3.3 廉价的声音编辑器12.4 创建和编辑声音12.5 查找声音和音乐12.6 访问波形声音12.7 播放波形声音12.7.1 播放文件中的波形声音12.7.2 播放作为资源的波形声音12.7.3 循环播放波形声音12.7.4 停止播放波形声音12.8 开发Brainiac 2示例程序12.8.1 编写程序代码12.8.2 组合资源12.8.3 测试完成的游戏12.9 小结12.10 亲身实践第13章 播放MIDI音乐13.1 感受MIDI音乐13.2 理解Windows媒体控制接口13.3 使用MCI播放MIDI音乐13.3.1 打开MIDI设备13.3.2 播放MIDI歌曲13.3.3 暂停MIDI歌曲13.3.4 关闭MIDI设备13.4 向游戏引擎添加MIDI音乐支持13.5 开发Henway 2示例程序13.5.1 编写程序代码13.5.2 测试完成的游戏13.6 小结13.7 亲身实践第14章 示例游戏:Battle Office14.1 游戏的玩法14.2 设计游戏14.3 开发游戏14.4 测试游戏14.5 小结14.6 亲身实践第5部分 高级动画第15章 实现子画面外观动画15.1 再次介绍帧动画15.2 设计动画子画面15.3 向游戏引擎添加动画子画面支持15.3.1 只绘制位图的一部分15.3.2 对Sprite类实现动画15.4 开发Battle Office 2示例程序15.4.1 编写程序代码15.4.2 测试完成的游戏15.5 小结15.6 游戏大变身第16章 创建子画面背景16.1 了解游戏背景的重要性16.2 了解游戏背景的类型16.2.1 纯色背景16.2.2 图像背景16.2.3 动画背景16.2.4 滚动背景16.3 向游戏引擎添加背景支持16.3.1 创建基本的背景类16.3.2 创建动画背景类16.4 开发Roids示例16.4.1 编写程序代码16.4.2 测试完成的游戏16.5 小结16.6 亲身实践第17章 示例游戏:Meteor Defense17.1 游戏的玩法17.2 设计游戏17.3 增强游戏引擎中的子画面17.4 开发游戏17.5 测试游戏17.6 小结17.7 游戏大变身第6部分 让游戏拥有大脑第18章 教游戏思考18.1 理解人工智能18.2 了解游戏AI的类型18.2.1 漫游AI18.2.2 行为AI18.2.3 策略AI18.3 开发AI策略18.4 开发Roids 2示例程序18.4.1 编写程序代码18.4.2 测试完成的程序18.5 小结18.6 亲身实践第19章 示例游戏:Space Out19.1 游戏的玩法19.2 设计游戏19.3 向游戏引擎中添加另一个子画面特性19.4 开发游戏19.5 测试游戏19.6 小结第7部分 增添游戏的趣味性第20章 使用闪屏增添游戏的活力20.1 闪屏的重要性20.2 了解闪屏20.3 创建Space Out 2游戏20.3.1 编写游戏代码20.3.2 测试完成的游戏20.4 小结20.5 亲身实践第21章 使用演示模式展示游戏21.1 什么是演示模式21.2 演示模式的细节21.3 开发Space Out 3游戏21.3.1 编写游戏代码21.3.2 测试完成的游戏21.4 小结21.5 游戏大变身第22章 记录高分22.1 记录得分的重要性22.2 确定高分数据模型22.3 存储和检索高分数据22.4 开发Space Out 4游戏22.4.1 编写游戏代码22.4.2 测试完成的游戏22.5 小结22.6 亲身实践第8部分 附加练习第23章 使用滚动背景更改远景23.1 什么是滚动背景23.1.1 横向滚动的背景23.1.2 纵向滚动的背景23.1.3 视差滚动背景23.2 理解滚动背景的工作原理23.3 向游戏引擎添加滚动背景支持23.3.1 创建背景图层类23.3.2 创建滚动背景类23.4 开发Wanderer示例23.4.1 编写程序代码23.4.2 测试完成的程序23.5 小结23.6 游戏人变身第24章 示例游戏:Stunt Jumper24.1 游戏的玩法24.2 设计游戏24.3 开发游戏24.4 测试游戏24.5 小结24.6 游戏大变身24.7 亲身实践本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。MaEr的轶事百家号最近更新:简介:玩的够嗨!玩的够爆!作者最新文章相关文章个回答天前C ++为你提供了对实际硬件和位推送的更精细控制。对于常见的业务需求,像Java或C#这样的第三代语言编程更快,而且像指针和垃圾回收这样的烦恼不在开发者手中。这是以缺乏优化和微调内存和数据结构如何使用的能力为代价的。天前在很大程度上,这是基于两件事:历史目前的框架多年来,C ++是包括游戏在内的高性能应用程序的唯一选择。因此,对用C ++编写的游戏引擎和库也进行了大量投资。即使在今天,大多数游戏框架都是用C ++编写的。XNA确实允许C#,但是即使是微软也不断推荐C ++作为他们选择的语言。}

我要回帖

更多关于 游戏开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信